วิธี load xml ไฟล์ และ แบ่งหน้า ด้วย php อย่างง่าย

13 July 2010

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

 








บทความในหมวดที่่น่าสนใจ อื่นๆ PHP Learning

26 Dec 10 แนะนำ PHP Simple HTML DOM Parser สำหรับ ดึงข้อมูล เฉพาะส่วนที่ต้องการ อ่าน 2775 13 May 09 แก้ไขการตัดข้อความด้วย substrใน php แล้วมีรูปสี่เหลี่ยม อ่าน 2732 25 Mar 11 สร้างรูปแบบ วันที่ คล้าย วันที่ใน facebook comment ด้วย php อย่างง่าย อ่าน 2727 14 Feb 09 ข้อแตกต่างระหว่าง mysql_pconnect กับ mysql_connect อ่าน 2711 21 Dec 09 ใช้งาน fckeditor WYSIWYG editor สำหรับเว็บบอร์ด หรืออื่นๆ อย่างง่าย อ่าน 2689 18 Sep 10 ดึงข้อมูล จากฐานข้อมูล สร้าง รายการเครือข่าย แบบ tree ด้วย php อ่าน 2663 03 Sep 10 จัดรูปแบบ url ลิ้งค์ link ด้วย เทคนิค php ได้อย่างง่าย อ่าน 2489 05 Jun 09 สร้างฟังก์ชัน แสดงการสุ่มเลือกตัวอักษร random ด้วย php อย่างง่าย อ่าน 2454 10 Oct 10 การใช้งาน stream.publish ของ facebook Old REST API ด้วย php sdk อ่าน 2452 25 Sep 08 หลักการเข้ารหัสด้วยฟังก์ชั่น md5 อ่าน 2444 10 Nov 08 สร้างฟังก์ชันเขียนไฟล์ด้วย PHP อ่าน 2429 25 Sep 08 Functions ลบไฟล์ อ่าน 2396 25 Sep 08 PHP MySQL connecting script and function อ่าน 2388 25 Sep 08 เอาข้อมูลใน mysql ออกมาเป็น text ไฟล์ อ่าน 2383 12 Nov 10 ประยุกต์ php ฟังก์ชัน time() อย่างง่าย กับการแสดง เงื่อนไข ช่วงเวลา อ่าน 2331

บทความคนเข้าอ่านวันนี้

25 Sep 08 ข้อความ Text การจัดการเกี่ยวกับขนาดและรูปร่างของข้อความ อ่าน 3725 20 Sep 10 ทบทวนการ สร้าง และใช้งาน ตัวแปร array ใน javascript อ่าน 1205 09 Sep 10 Google map API v.3 กับ jQuery ลากจุดหา พิกัด ค่า latitude และ longitude อ่าน 6456 07 Aug 10 ใช้ css แบ่งเนื้อหา เป็นคอลัมน์ พร้อมแบ่งหน้า ด้วย php อ่าน 2896 10 Nov 08 ฟังก์ชัน PHP ตัดข้อความยาวด้วย wordwrap อ่าน 3639 25 Sep 08 Upload รูปภาพ หรือไฟล์ด้วย ฟังก์ชั่น ใช้ง่าย อ่าน 4705 06 Jun 09 ใช้ css กำหนด media print ให้ ไม่แสดง ปุ่มสั่งพิมพ์ print หน้าเอกสารที่ต้องการ อ่าน 3471 06 Nov 10 แนะนำ jQuery UI Effect แบบ ไม่ต้องใช้งานร่วมกับ event show hide และ toggle อ่าน 2576 03 Feb 10 ทบทวน javascript ฟังก์ชั่น ให้กรอกเฉพาะภาษาอังกฤษเท่านั้น อ่าน 2261 01 Feb 09 สร้างกล่องแจ้งข้อความ คล้าย MSN ด้วย jQuery อ่าน 6022 01 Nov 10 ประยุกต์ ฟังก์ชัน animate ใน jQuery เลื่อน scroll หน้าเพจ อ่าน 2308 06 Dec 11 การใช้งาน css จัดตำแหน่ง ซ้อนข้อความบนรูปภาพอย่างง่าย อ่าน 777 19 Nov 10 ทางเลือก อัพโหลดไฟล์ใน ckeditor ด้วย ajax file manager อ่าน 2191 04 Jan 10 ดึงไฟล์ xml (rss) ไฟล์แบบ cross domain มาแสดงด้วย ajax ใน jQuery อย่างง่าย อ่าน 3642 12 Nov 09 รู้จักกับ Ajax Events ใน jQuery อ่าน 4246 25 Sep 08 การกำหนด selectors ด้วย jQuery แบบตัวกรองพื้นฐาน อ่าน 2714 27 Jun 11 ลูกเล่น เพิ่มช่องรับ input type file อัตโนมัติ ด้วย jQuery อ่าน 2313 13 Oct 08 คำสั่ง SQL ORDER BY อ่าน 7384 02 Apr 09 สร้างรายการตัวเลือกให้กับ input text ด้วย jQuery อย่างง่าย อ่าน 4087 20 Oct 10 สร้าง video playlist ของ jwplayer jquery plugin ด้วย xml และการใช้งาน อ่าน 2598
จำนวนผู้เยี่ยมชม 784677
คน 2012 © Copyright ninenik.com. All rights reserved.