0

RSSGoogleブロガーの投稿を表示するページを自分のサイトに作成しようとしています。PHP、CodeIgniter、SimplePieを使用してGoogleフィードを解析しています。

問題1:

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つのフィードへの個別の参照ではありません。

4

2 に答える 2

1

質問1

GUIDが特定の形式であることに依存したり、有効なURLであることに依存したりしないでください(isPermalink属性がtrue-に設定されていない限り、省略は意味するはずですtrueが、常にそうであるとは限りません)。

最善の策は、GUIDを単純にハッシュすることです。SimplePieにそれを実行させたい場合は、$item->get_id(true)

質問2

1つのフィードのみを使用しようとしている場合は、マルチフィード手法を使用するのではなく、そのフィードのみをSimplePieに渡す必要があります。(将来的には、とは別のSimplePie_Feedクラスを導入してSimplePie、各フィードを個別にループできるようにする可能性がありますが、これはまだ存在していません。)

于 2012-05-13T01:39:47.333 に答える
-1

これはYahooによるパイプに興味があるかもしれません

Pipesは、Web全体のコンテンツを集約、操作、およびマッシュアップするための強力な構成ツールです。

于 2012-05-10T19:05:28.963 に答える