Simplepie in CodeIgniter

simplepie, 一個頗好用的 php rss parser library, 因為習慣用 CodeIgniter, 就用 CodeIgniter 的方式來寫一下。

第一個步驟就是到 simplepie 的網站下載套件回來、解開, 然後放到 /system/application/library 裡, 把 simplepie.inc 重新命名成 simplepie.php, 接著就可以像下面這樣子用 (當然, 這是寫在 controller 裡)

$this->load->library('simplepie');
$this->simplepie->set_feed_url('http://tzangms.com/feed');
$this->simplepie->enable_cache(false);
$this->simplepie->init();
echo $this->simplepie->get_title();```

或是嫌 CI 讀 library 的方式太囉唆, 可以這樣寫

$this->load->library('simplepie'); $feed = new SimplePie(); $feed->setfeedurl('http://tzangms.com/feed'); $feed->enablecache(false); $feed->init(); echo $feed->gettitle();```

以上的例子都是用來抓 rss feed 的 title, 當然 simplepie 在 setfeedurl 函式裡面都是直接給 rss feed 的 link, 而用 simplepie 更方便的是, 你甚至可以直接丟 blog 網址給他, 他會直接幫你抓 rss feed 的 link, 非常方便。 (只是這樣會先去抓網頁然後在去 parse 正確的 rss feed link 出來, 所以需要一段不算短的時間)

PS. 上面中會看到 enable_cache 是設定為 false, 是因為 simplepie 預設是會開啟 cache, 所以需要建資料夾來放 cache 檔案, 這裡只是示範就關掉了。

接下來, 來個抓 RSS feed 的範例吧! 這裡是 Controller 的部分:

$this->load->library('simplepie'); $this->simplepie->set_feed_url('http://tzangms.com/feed'); $this->simplepie->enable_cache(false); $this->simplepie->init(); $feeds = $this->simplepie->get_items();<p>$data['feeds'] = $feeds; $this->load->view('simplepie', $data);</p>

非常淺顯易懂吧!? 不錯! 那我也就不多做解釋了 XD

simplepie 這個名字好像是因為 magpie rss 來的? anyway, 總之我是不會想在 CI 裡面用 magpierss XD 因為 simplepie 簡潔多了。 基本上, 看完上面的東西在參考一下 reference 就 ok 了!

tzangms

Read more posts by this author.

Subscribe to Oceanic / 海海人生

Get the latest posts delivered right to your inbox.

or subscribe via RSS with Feedly!