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