我偶然發現你的問題尋找關於simplepie的其他內容。但我在使用simplepie時使用標識符。因此,這似乎是回答你的問題:
在PHP我getFeedPosts功能如下:
public function getFeedPosts($numberPosts = null) {
$feed = new SimplePie(); // default options
$feed->set_feed_url('http://yourname.blogspot.com'); // Set the feed
$feed->enable_cache(true); /* Enable caching */
$feed->set_cache_duration(1800); /* seconds to cache the feed */
$feed->init(); // Run SimplePie.
$feed->handle_content_type();
$allFeeds = array();
$number = $numberPosts>0 ? $numberPosts : 0;
foreach ($feed->get_items(0, $number) as $item) {
$singleFeed = array(
'author'=>$item->get_author(),
'categories'=>$item->get_categories(),
'copyright'=>$item->get_copyright(),
'content'=>$item->get_content(),
'date'=>$item->get_date("d.m.Y H:i"),
'description'=>$item->get_description(),
'id'=>$item->get_id(),
'latitude'=>$item->get_latitude(),
'longitude'=>$item->get_longitude(),
'permalink'=>$item->get_permalink(),
'title'=>$item->get_title()
);
array_push($allFeeds, $singleFeed);
}
$feed = null;
return json_encode($allFeeds);
}
正如你所看到的,我建立一個關聯數組,並返回它作爲JSON是什麼使得它在客戶端使用jQuery和ajax(在我的情況下)非常簡單。
'id'是我博客中每篇文章的唯一標識。所以這是在其他功能/另一個頁面上識別同一篇文章的關鍵。你只需要迭代帖子並比較這個ID。據我所見,沒有get_item($ ID)功能。有一個get_item($ key)函數,但它也只是從數組位置的所有文章的列表中取出一個特定的文章(這與我建議的幾乎相同)。
嘿,我在一起扔了一個相當醜陋的黑客,但這似乎是一個更好的解決方案。可惜沒有一個函數可以通過ID獲得它們。謝謝! – 2012-06-20 17:25:16