เทคนิค php ใช้ fgets และ javascript วนลูป loop อ่านไฟล์ ขนาดใหญ่

31 August 2010

ตัวอย่างโค้ดต่อไปนี เป็นเทคนิค วิธีการสำหรับ อ่าน text ไฟล์ ขนาดใหญ่
(จากตัวทดสอบ มีขนาดไฟล์ประมาณ 1.5 MB) เพื่อนำค่าข้อมูล ของแต่ละบรรทัด ไปใช้งาน
โดยสามารถกำหนด จำนวนบรรทัด ที่เหมาะสม ในการ ประมวลผล แต่ละครั้ง
สมมติ ข้อมูลมี 1000 บรรทัด แต่การประมวลผลที่เหมาะสม อยู่ที่ 50 บรรทัด
หรือ หมายถึง ต้องการนำมาใช้งานครั้งละ 50 บรรทัด เป็นต้น

ตัวอย่างการทำงาน
http://www.ninenik.com/demo/loop_query.php

ตัวอย่างโค้ด
 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>php read text loop</title>
</head>

<body>

<input type="button" name="button" id="button" value="Start Query" 
onclick="window.location='?page=0'" />
<br />
<?php
if(isset($_GET['page'])){  // รับค่า เพิ่อเริ่มการทำงาน
?>
<?php
	$loop_step=50; // กำหนดจำนวน บรรทัดที่ต้องการ ใฃ้แต่ละครั้ง
	if(!isset($_GET['page'])){
		$step_page=1;
		$point_start=0;
		$point_end=$loop_step;		
	}else{
		$step_page=$_GET['page']+1;
		$point_start=$_GET['page']*$loop_step;
		$point_end=$point_start+$loop_step;			
	}
    $f = fopen ("gen_large_text.txt", "r");
    $ln= 0;
	$running=0; // กำหนดสถานะ การทำงาน ให้ javascript
    while ($line= fgets ($f)) {
		++$ln;
		if($ln>$point_start && $ln<=$point_end){			
			if($line===FALSE){
				print ("FALSE\n");
			}else{
				// ส่วนของคำสั่งสำหรับทำงาน
				print ($ln." -- ".$line);
			}
			echo "<hr>";       
			$running=1; // เท่ากับ 1 ให้ javascript ทำงานต่อ
		}
    }
    fclose ($f);
?> 
<?php if($running==1){ // เท่ากับ 1 javascript ทำงานต่อ  // หากทำงานเสร็จ จะเป็น 0 ?>
<script type="text/javascript">
setInterval(function(){
	window.location='loop_query.php?page=<?=$step_page?>';
},5000);
</script>
<?php } ?>
<?php } ?>
</body>
</html>

สามารถ นำไปประยุกต์ กับการใช้งาน กับฐานข้อมูล เช่น การอัพเดทข้อมูล
ในฐานข้อมูลจำนวนมาก ก็สามารถที่จะกำหนด ให้ทำการอัพเดทข้อมูล ตามจำนวนที่ต้องการ
ในแต่ละครั้งได้

 








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

14 Dec 10 แนะนำ php ip 2 country สำหรับเช็ค ip ว่ามาจากประเทศอะไร อ่าน 1607 22 Oct 10 สร้าง php ฟังก์ชัน ค้นหาค่าในตัวแปร array อย่างง่าย อ่าน 1428 25 Oct 08 สร้างฟังก์ชันการหา whois เบื้องต้นด้วย php อย่างง่าย อ่าน 1427 04 Dec 09 จัดการ Directory สร้าง ลบ เปลี่ยนชื่อ กำหนด permission ผ่าน FTP function ด้วย PHP อ่าน 1409 10 Feb 10 ประยุกต์ สร้าง FTP Function สำหรับการจัดการไฟล์ผ่าน FTP Protocal อ่าน 1393 25 Sep 08 เพิ่มข้อความหน้าหรือหลังตัวเลขหรือข้อความด้วยฟังก์ชัน str_pad อ่าน 1360 03 Feb 11 การใช้งาน character classes ใน Regular Expressions ของ PHP อ่าน 1270 26 Mar 10 ความแตกต่าง ระหว่าง ฟังก์ชัน strstr กับ strrchr และ การประยุกต์ ใช้งาน อ่าน 1244 18 Mar 11 ทบทวน htaccess สำหรับ ให้ url เว็บมี www ด้านหน้าเสมอ อ่าน 1218 28 May 10 แสดง การแจ้งเตือน ให้เปิด หรือ บันทึกไฟล์ที่ดาวน์โหลด ด้วย php อ่าน 1215 30 Oct 09 ฟังก์ชัน PHP แปลงตัวเลขอาราบิก เป็น ตัวเลขไทย อย่างง่าย อ่าน 1175 02 Sep 10 สร้าง ฟังก์ชัน ค้นหาโดเมน check domain ว่าง อย่างง่าย ด้วย php อ่าน 1163 02 Mar 10 ประยุกต์ แปลเนื้อหา ในเว็บไซต์ด้วย google translater api สำหรับ php อ่าน 1161 19 Jan 11 อักขระคั่น (Delimiters) ในการใช้งาน Regular Expressions ของ PHP อ่าน 1073 21 Jan 11 การใช้งาน Meta characters ใน Regular Expressions ของ PHP อ่าน 1049

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

20 Aug 10 การสร้าง popup ที่แตกต่าง ด้วยวิธี showModalDialog อ่าน 4814 14 Oct 11 การเชื่อมต่อ facebook และ ล็อกอิน แบบ popup ด้วย php sdk v.3.1.1 อ่าน 881 17 Mar 09 สร้างฟังก์ชันลบเวลาด้วย php อย่างง่าย อ่าน 2079 20 Oct 10 สร้าง video playlist ของ jwplayer jquery plugin ด้วย xml และการใช้งาน อ่าน 2599 09 Jul 10 เพิ่มความเร็ว ให้กับการ cache ด้วย jquery ajax และ php cache class อ่าน 2298 13 Mar 09 สร้างฟังก์ชัน กรอกข้อความได้เฉพาะภาษาไทยด้วย javascript อ่าน 3281 30 Mar 09 ค้นหาและ hilight ข้อความในหน้าเว็บเพจด้วย jQuery อ่าน 2781 25 Sep 08 การทำให้หน้าเว็บของเราสามารถดูได้อย่างเดียว อ่าน 2406 20 Dec 09 ประยุกต์การทำ overlay เพจ กับกล่องข้อความ ด้วย jQuery อ่าน 4660 20 Mar 10 ใช้ jQuery สร้าง การเลื่อนโฟกัส ของ textbox ด้วยลูกศร บนแป้นพิมพ์ คีบอร์ด keyboard อ่าน 3001 07 Sep 10 ใช้ ckeditor กับ filemanager ด้วย php รองรับ ฟังก์ชัน javascript อ่าน 3439 13 Oct 11 แนะนำการใช้งาน การเชื่อมต่อ facebook ด้วย php sdk v.3.1.1 อ่าน 770 25 Sep 08 ตรวจสอบระดับความปลอดภัยของ รหัสผ่านด้วย Ajax อ่าน 3927 25 Sep 08 การกำหนด selectors ด้วย jQuery เกี่ยวกับ form อ่าน 4347 18 Oct 08 การประยุกต์ใช้ฟังก์ขัน after() กับ text input อ่าน 4559 23 Dec 09 จัดรูปแบบ การแบ่งคอลัมน์ column ของ ตาราง สำหรับแสดงข้อมูล ด้วย php อ่าน 3914 13 Oct 08 คำสั่ง SQL WHERE อ่าน 3514 19 Oct 08 คำสั่ง SQL COUNT อ่าน 6576 08 Oct 08 คำสั่ง SQL DISTINCT อ่าน 4892 28 Oct 08 การ hilight form ฟอร์มด้วย javascript อย่างง่าย อ่าน 3604
จำนวนผู้เยี่ยมชม 784682
คน 2012 © Copyright ninenik.com. All rights reserved.