หลังจากที่ต้องการพัฒนาเว็บด้วย PHP ให้สามารถอ่าน Feed ได้ โดยใช้งานบน Codeigniter โดยเริ่มแรกคิดว่าจะใช้แค่ Atom เท่านั้นหาไปหามา Codeigniter ไม่มี Library ให้ใช้งานเองต้องพึ่งพา Simple Pie เมื่อเข้าสู่เว็บไซท์ของ Simple Pie เองจาก Wiki ของ Simple Pie จึงได้รู้ว่ามี framework และ CMS หลายชนิดสามารถใช้งาน Simple Pie สำหรับเป็น Feed Parsing ไม่ว่าจะเป็น Drupal, Joomla, CakePHP เองก็ใช้ตัวนี้ด้วยเหมือนกัน ส่วน Codeigniter เองถึงแม้ไม่มีอยู่ใน Library แต่สามารถเอาไปใช้ได้ง่ายๆ ทำตาม Tutorial ของ Building a Complete CodeIgniter Application: Part 2 Feed Parsing? Simple as Pie! โดยจะบันทึกไว้ย่อๆ กันลืมดังนี้
ดาวน์โหลด Simple Pie Library จาก http://simplepie.org/downloads/?download ซึ่งจะเป็นไฟล zip หลังจากนั้น(ตัวอย่างใช้ Linux นะครับ ใช้ Simple Pie 1.1.3)
$ unzip simplepie_1.1.3.zip
$ cd 1.1.3
$ ls
compatibility_test demo LICENSE.txt simplepie.inc
create.php idn README.txt
หลังจาก ls ดูก็จะพบไฟล์ simplepie.inc ให้คัดลอกไฟล์นี้ไปไว้ที่ library ของ Codeigniter
$ cp simplepie.inc $CODEIGNITER_BASE/system/application/libraries/simplepie.php
แค่นี้ก็สามารถใช้งาน Simple Pie แต่อาจจะต้องกำหนด Permittion นิดหน่อย ที่ /system/cache ให้สามารถเขียนข้อมูลลงไปใน directory นี้ได้
ทดสอบเขียนโปรแกรมดู
Controller: welcome.php
View: view/index.php
ทดสอบรันดูน่าจะได้ดังที่ต้องการ
ดาวน์โหลด Simple Pie Library จาก http://simplepie.org/downloads/?download ซึ่งจะเป็นไฟล zip หลังจากนั้น(ตัวอย่างใช้ Linux นะครับ ใช้ Simple Pie 1.1.3)
$ unzip simplepie_1.1.3.zip
$ cd 1.1.3
$ ls
compatibility_test demo LICENSE.txt simplepie.inc
create.php idn README.txt
หลังจาก ls ดูก็จะพบไฟล์ simplepie.inc ให้คัดลอกไฟล์นี้ไปไว้ที่ library ของ Codeigniter
$ cp simplepie.inc $CODEIGNITER_BASE/system/application/libraries/simplepie.php
แค่นี้ก็สามารถใช้งาน Simple Pie แต่อาจจะต้องกำหนด Permittion นิดหน่อย ที่ /system/cache ให้สามารถเขียนข้อมูลลงไปใน directory นี้ได้
ทดสอบเขียนโปรแกรมดู
Controller: welcome.php
class Welcome extends Controller {
function Welcome() {
parent::Controller();
}
function index() {
$SIZE = 10;
$this->load->helper(array('url'));
$this->load->library('simplepie');
$this->simplepie->cache_location = BASEPATH .'cache';
$this->simplepie->enable_order_by_date(false);
$this->simplepie->set_feed_url('http://web.ofebia.com/Services/feeds/atom');
$this->simplepie->init();
$webOfebiaUpdate = array();
$items = $this->simplepie->get_items();
for($i=0; $i<$SIZE; $i++) { $item = $items[$i]; $webOfebiaUpdate[$i]->title = $item->get_title();
$webOfebiaUpdate[$i]->link = $item->get_link();
$webOfebiaUpdate[$i]->body = $item->get_content();
}
$data['webOfebiaUpdate']=$webOfebiaUpdate;
$this->load->view('index/index',$data);
}
}
View: view/index.php
<ul>
<?php foreach($webOfebiaUpdate as $webContent){ ?>
<li>
<?=$webContent->title?>
</li>
<?php } ?>
</ul>
ทดสอบรันดูน่าจะได้ดังที่ต้องการ
ความคิดเห็น
แสดงความคิดเห็น