ตัวอย่างต่อไปนี้ เป็นโค้ด สำหรับการโหลด 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 หรือ อื่นๆ ต่อไปได้