แสดง Feed ด้วย Simplepie

require_once('simplepie/simplepie.inc');
$feed = new SimplePie();
$feed->set_feed_url(array(0=>'http://www.blognone.com/atom.xml',
'http://feeds.feedburner.com/GoogleCodeNews?format=xml',
'http://images.apple.com/main/rss/hotnews/hotnews.rss',
'http://store.steampowered.com/feeds/news.xml'));

$feed->enable_cache(false);
$feed->set_item_limit(3);
$feed->enable_order_by_date(true);

$feed->init();
$feed->handle_content_type();

if ($feed->error()):
    echo $feed->error();
else:
    foreach($feed->get_items() as $item){
        echo '<a href="'.$item->get_link().'"><b>'.$item->get_title().'</b></a>';
        echo '('.$item->get_date().')';
    }
endif;


อธิบายการทำงาน
บรรทัดที่1-2: ใช้งาน library ของ Simplepie แล้วก็ new class ขึ้นมาใช้งานครับ
บรรทัดที่3: set url ของ feed ที่เราจะดึงมาแสดงผล
บรรทัดที่8: set false เพื่อปิดการใช้งาน cache แต่ถ้าเปิดเป็น true ต้องสร้าง folder cache ขึ้นมารองรับการทำงาน
บรรทัดที่9: ให้ feed แต่ละตัวที่เราเซ็ตเอาไว้แสดง feed ละ 3 ตัว
บรรทัดที่10: ให้ feed เรียงตามวันที่ ใหม่ -> เก่า
บรรทัดที่15: เช็กว่า feed มัน error รึป่าว
บรรทัดที่18: get_items() จะเป็นการดึงเอารายละเอียดของ feed ออกมาใช้งาน get_xxx ตัวอื่นก็ลองไปอ่านดูใน Reference ครับ ^^
ตามตัวอย่างนี้มันก็จะโหลด feed จากของ blognone, googlecode, apple แล้วก็ steam มาอย่างละ 3 ข่าว หวังว่าจะใช้กันได้ไม่ยากนะครับ ;)

ปล.ไปโหลด sources ได้ที่หน้าเว็บ Simplepie ได้เลยครับ

Ref.

Comments