ตัวอย่างต่อไปนี้ เป็นโค้ด สำหรับการโหลด xml ไฟล์ จากเว็บข่าวสารต่างๆ หรือไฟล์ xml feed มาแสดง พร้อมทั้ง ทำการแบ่งหน้า รายการ ใน xml ไฟล์ ด้วย php
ตัวอย่าง https://www.ninenik.com/demo/php_show_page_xml.php
โค้ดตัวอย่าง
<?php
//$url_feed = 'http://breakingnews.nationchannel.com/rss/breakhot.xml'; // ข่าวจำนวนมากสำหรับ ทดสอบ
$url_feed = 'http://www.manager.co.th/RSS/Home/Breakingnews.xml'; // กำหนด xml feed ที่ต้องการ
// ส่วนเริ่มต้นการใช้งานฟังก์ชัน curl ในการเรียกใช้ไฟล์ xml feed
$ch = curl_init($url_feed);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$get_content = curl_exec($ch); // เก็บรูปแบบข้อความ xml ไว้ในตัวแปร $get_content
curl_close($ch);
// สิ้นสุดการใช้งานฟังก์ชัน curl ในการเรียกใช้ไฟล์ xml feed
// แปลงข้อความที่อยู่ในรูปแบบ xml เป็นตัวแปร object
$parsed_xml = simplexml_load_string($get_content);
// สามารถใช้ฟังก์ชัน simplexml_load_file() แทนการใช้งาน curl และ
// simplexml_load_string() เพื่อแปลงจากไฟล์ xml feed เป็น object ได้เลย
// $parsed_xml = simplexml_load_file($url_feed);
// หาจำนวนรายการ feed ทั้งหมด
// ถ้ามีจำนวนมาก สามารถกำหนดเอง เพื่อจำกัดการแสดงข้อมูลได้
$total=count($parsed_xml->channel->item);
// $total=20; // กรณีกำหนดเอง
// จำนวนรายการที่ต้องการแสดง แต่ละหน้า
$perPage = 2;
// คำนวณจำนวนหน้าทั้งหมด
$num_naviPage=ceil($total/$perPage);
// กำหนดจุดเริ่มต้น และสิ้นสุดของรายการแต่ละหน้าที่จะแสดง
if(!isset($_GET['page'])){
$s_key=0;
$e_key=$perPage;
$_GET['page']=1;
}else{
$s_key=($_GET['page']*$perPage)-$perPage;
$e_key=$perPage*$_GET['page'];
$e_key=($e_key>$total)?$total:$e_key;
}
// สร้างลิ้งค์เลือกหน้า
for($i=1;$i<=$num_naviPage;$i++){
echo " || <a href=\"?page=".$i."\">Page $i</a>";
}
echo "<hr>";
// แสดงรายการ
for($indexFeed=$s_key;$indexFeed<$e_key;$indexFeed++){
$numOrder=$indexFeed+1;
echo $numOrder.".".$parsed_xml->channel->item[$indexFeed]->title."<br>";
echo '<strong>Description : </strong> '.$parsed_xml->channel->item[$indexFeed]->description.'<br/>';
echo '<strong>Link :</strong> '.$parsed_xml->channel->item[$indexFeed]->link."<br><hr>";
}
// แสดงหน้าปัจจุบัน
echo "Page:".$_GET['page'];
?>
สามารถนำไปประยุกต์ใช้งาน เพิ่มเติม เช่น การเพิ่มความเร็ว ในการโหลด xml ไฟล์ การเพิ่มลูกเล่น ด้วย ajax การปรับรูปแบบการแสดง ด้วย css หรือ อื่นๆ ต่อไปได้