จากตัวอย่างเรื่อง วิธีโหลด xml ไฟล์ และ แบ่งหน้า ด้วย php อย่างง่าย
ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา จากตัวอย่างเรื่อง วิธีโหลด xml ไฟล์ และ แบ่งหน้า ด้วย php อย่างง่าย
จากตัวอย่างเรื่อง วิธีโหลด xml ไฟล์ และ แบ่งหน้า ด้วย php อย่างง่าย
Copy
จากตัวอย่างนี้ครับ
https://www.ninenik.com/วิธี_load_xml_ไฟล์_และ_แบ่งหน้า_ด้วย_php_อย่างง่าย-296.html
<?php
https://www.ninenik.com/วิธี_load_xml_ไฟล์_และ_แบ่งหน้า_ด้วย_php_อย่างง่าย-296.html
<?php
//echo file_get_contents('http://www.dla.go.th/servlet/RssServlet');
//$url_feed = 'http://breakingnews.nationchannel.com/rss/breakhot.xml'; // ข่าวจำนวนมากสำหรับ ทดสอบ
$url_feed = 'http://www.dla.go.th/servlet/DocumentServlet'; // กำหนด 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->DOCUMENTS->DOCUMENT);
// $total=20; // กรณีกำหนดเอง
// จำนวนรายการที่ต้องการแสดง แต่ละหน้า
$perPage = 10;
// คำนวณจำนวนหน้าทั้งหมด
$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->DOCUMENTS->DOCUMENT[$indexFeed]->DOCUMENT_TOPIC."<br>";
echo '<strong>หัวข้อ : </strong> '.$parsed_xml->DOCUMENTS->DOCUMENT[$indexFeed]->DOCUMENT_NO.'<br/>';
echo '<strong>Link :</strong> '.$parsed_xml->DOCUMENTS->DOCUMENT[$indexFeed]->UPLOAD_FILE1."<br><hr>";
}
// แสดงหน้าปัจจุบัน
echo "Page:".$_GET['page'];
?>
ทำตามแต่ไม่แสดงข้อมูล ไม่ทราบว่าผิดตรงไหนครับ
ทำตามแต่ไม่แสดงข้อมูล ไม่ทราบว่าผิดตรงไหนครับ
Takabe
113.53.93.xxx
29-06-2020
13:13:37
คำแนะนำ และการใช้งาน
สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก
- ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา
โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ