วิธี load xml ไฟล์ และ แบ่งหน้า ด้วย php อย่างง่าย
เขียนเมื่อ 13 ปีก่อน โดย Ninenik Narkdeeแบ่งหน้า xml php
คำสั่ง การ กำหนด รูปแบบ ตัวอย่าง เทคนิค ลูกเล่น การประยุกต์ การใช้งาน เกี่ยวกับ แบ่งหน้า xml php
ไปที่
Copy
ตัวอย่างต่อไปนี้ เป็นโค้ด สำหรับการโหลด xml ไฟล์ จากเว็บข่าวสารต่างๆ หรือไฟล์ xml feed มาแสดง พร้อมทั้ง ทำการแบ่งหน้า รายการ ใน xml ไฟล์ ด้วย php
ตัวอย่าง http://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 หรือ อื่นๆ ต่อไปได้
กด Like หรือ Share เป็นกำลังใจ ให้มีบทความใหม่ๆ เรื่อยๆ น่ะครับ

URL สำหรับอ้างอิง
Top
Copy
ขอบคุณทุกการสนับสนุน
![]()