【问题标题】:What is the format of a Google blogger post GUID? PHP / CodeIgniter / SimplePieGoogle 博主帖子 GUID 的格式是什么? PHP / CodeIgniter / SimplePie
【发布时间】:2012-05-10 14:03:47
【问题描述】:

我正在尝试在我的网站上创建显示 RSS 谷歌博客帖子的页面。我正在使用 PHP、CodeIgniter 和 SimplePie 来解析 Google 提要。

问题 1:

我希望能够在一个页面上使用 guid 创建一个链接,然后在下一页上显示个人博客文章。所以我有这样的事情:

http://mysite.co.uk/technology/blog_post/tag:blogger.com,1999:blog-6168323340908483477.post-1651486241197422269

这不起作用,因为 guid 对 url 无效并且看起来很乱(可以使用 url_encode 但不想这样做)。我想像这样得到它:

http://mysite.co.uk/technology/blog_post/6168323340908483477/1651486241197422269

为此,我需要了解 guid 的格式。这是一个json对象吗?如果是这样,我该如何拆分?我可以使用 explode() 来拆分它,但我想有更好的方法。

问题 2:

我可以在我的 CodeIgniter / SimplePie 网站上显示提要,但我不能轻松地显示单个提要。这是我目前的代码(未经测试):

  foreach($feeds as $k => $item):
    if(  $item->get_id()==$this->uri->segment(3) ): //Does id of post match id passed in?
    ?>
      <h1 id="main-heading"><?=$page_title?></h1>
      <div class="blog-date"><?=$item->get_date()?></div>
      <h3><a href="<?=$item->get_link()?>"><?=$item->get_title()?></a></h3>
      <div class="blog-desc"><?=$item->get_description()?></div>
    <?
    break;//End as we only want to display one post, need a better way of doing this.
    endif;
  endforeach;

显然这是一个循环,而不是对 1 个提要的单独引用。

【问题讨论】:

    标签: php codeigniter rss blogger simplepie


    【解决方案1】:

    问题 1

    您不应将 GUID 视为某种格式,也不应将其视为有效 URL(除非 isPermalink 属性设置为 true - 省略应该暗示 true,但是并非总是如此)。

    最好的办法是简单地散列 GUID。如果您希望 SimplePie 为您执行此操作,只需使用 $item-&gt;get_id(true)

    问题 2

    如果您只尝试使用一种供稿,那么您应该只将那个供稿传递给 SimplePie,而不是使用多供稿技术。 (将来我们可能会引入一个独立于 SimplePieSimplePie_Feed 类,允许您单独循环每个提要,但这还不存在。)

    【讨论】:

    • 很好的建议,谢谢。我将按照建议使用散列版本。不知道为什么我不只是传递一个提要,现在看起来很容易。
    【解决方案2】:

    这可能会让你感兴趣pipes by Yahoo

    Pipes 是一种强大的组合工具,用于聚合、操作和 来自网络的混搭内容。

    【讨论】:

    • 抱歉,这并不能真正回答我的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-04
    • 1970-01-01
    • 1970-01-01
    • 2012-04-08
    • 2015-01-19
    • 1970-01-01
    • 2020-10-19
    相关资源
    最近更新 更多