Thaimisc.com : เล่นกับไฟล์ (4)
ThaiMisc.Com : Free Webboard | Free GuestBook | Free Poll | Free Ecard Server | Free Java Chat Room | Advertising | Contact Us | Colocation | Web Hosting | เปิดร้านค้าฟรี


Category : Php Developer Print Article Only Print Aticle With Comment
เล่นกับไฟล์ (4)
เขียนโดย เดอะกาฝากไดอารี่ (channelv_on_mobile@hotmail.com) , 15-09-2004

วันนี้เปียกปอนเลยครับ อยู่โอฟรี มาจ๊ะเอ๋กับฝนตกค่อนข้างหนักหน่วงตอนจะกลับบ้าน แต่ฝนแค่นี้ ไม่อาจทำให้ผมงดมาอัพเดตเนื้อหาได้หรอก จริงไหมครับ

fread()
คราวที่แล้วผมได้พูดถึงฟังก์ชัน fread() ไปแว้บๆ แต่ไม่ได้เขียนบอกถึงการใช้งาน เลยขอมาเขียนถึงในตอนนี้ก็แล้วกันนะครับ... รูปแบบการใช้งาน fread() มีดังนี้ครับ

fread(resource number, ความยาวตัวอักษรที่จะอ่าน)

  • resource number (หรือเวลาอ่าน PHP Manual เขาจะเขียนว่า resource handle) จะหมายถึง ค่าที่ return ได้จากฟังก์ชัน fopen() นั่นเองครับ
  • ส่วนความยาวตัวอักษรที่จะอ่าน ก็หมายถึงจำนวนตัวอักษรที่เราจะอ่าน เช่น ถ้าเราใส่เป็น 4096 ก็หมายความว่า เราจะอ่านแค่ 4096 ตัวอักษรเท่านั้น (หรือพูดง่ายๆ คือ 512 ไบต์) อนึ่ง ขอให้จำเอาไว้ว่า ความยาวตัวอักษรที่จะอ่าน ต้องใส่เป็นจำนวนเต็มบวกเท่านั้นนะครับ (คงไม่มีใครอ่านแค่ -3 ตัวอักษร หรือ 3.5 ตัวอักษรหรอกนะครับ)

ค่าที่ return ได้จากฟังก์ชัน fread() นั้น จะเป็น string ครับ

fwrite()
เราได้ลองเปิดไฟล์ แล้วเรียกข้อมูลในไฟล์ออกมาอ่านกันดูแล้ว แต่นั่นก็ยังไม่ใช่วัตถุประสงค์หลักทั้งหมด ของการเล่นกับไฟล์ของเรา.. นอกจากเราจะอ่านข้อมูลจากในไฟล์มาแสดงได้แล้ว เรายังสามารถบันทึกข้อมูลใดๆ ลงในไฟล์ก็ได้ด้วยครับ

ฟังก์ชันที่เราจะใช้ก็คือ fwrite() นั่นเอง โดยมีรูปแบบการใช้งานดังนี้ครับ

fwrite(resource number, ข้อความใดๆ [, ความยาวตัวอักษรที่จะใส่เข้าไฟล์])

  • resource number (หรือเวลาอ่าน PHP Manual เขาจะเขียนว่า resource handle) จะหมายถึง ค่าที่ return ได้จากฟังก์ชัน fopen() นั่นเองครับ
  • ข้อความใดๆ ที่ว่า ก็คือข้อความที่ต้องการจะใส่เข้าไฟล์นั่นเอง (หรือพูดง่ายๆ คือ บันทึกลงไฟล์ที่เปิดขึ้นมา)
  • ความยาวตัวอักษรที่จะใส่เข้าไฟล์ นั้นเราจะใช้ในกรณีที่ข้อความที่จะบันทึกมันยาวมากๆ แต่เราต้องการบันทึกแบบจำกัดจำนวนตัวอักษร

fwrite() นั้นจะ return ค่าออกมา 2 แบบครับ คือ หากสามารถบันทึกข้อความลงไฟล์ได้ก็จะ return ค่ามาเป็นจำนวนไบต์ที่บันทึกไป แต่หากไม่สามารถบันทึกได้ จะ return ค่าเป็น FALSE ครับ

มาดูตัวอย่างการใช้งาน แล้วลองทำตามดีกว่านะครับ จากนั้นผมจะพูดถึงแนวทางการประยุกต์ใช้งาน... ติ๊ต่างว่าตอนนี้ผมก็ยังอยู่ที่เดิมคือ C:AppServwwwtest นะครับ ถึงตรงนี้แล้ว ผมมีไฟล์ index.php มีไฟล์ sample.txt เอาไว้ แต่ตอนนี้ผมกำลังจะเก็บข้อมูลอะไรบางอย่างลงใน log file ชื่อ weblog.txt แต่ ณ ตอนนี้ยังไม่มีไฟล์นี้ปรากฏ ผมจะทำยังไง?!?

ดูโค้ดต่อไปนี้นะครับ

<?php

$filename = "weblog.txt"; //กำหนดชื่อไฟล์
$handle = fopen($filename, "w+"); //เปิดไฟล์
$text = date(d. "/". m. "/". Y. " ". H. ":". i. ":". s). " ข้อความที่ 1"; //ข้อความที่จะบันทึก
$write = fwrite($handle, $text); //บันทึก
if (!$write) { echo "ไม่สามารถสร้างไฟล์ได้"; }
else { echo "สร้างไฟล์เรียบร้อย"; }
fclose ($handle); //ปิดไฟล์

?>

พอผมรันไฟล์นี้ สิ่งที่ผมจะได้ก็คือ

เป็นการบอกว่า ไฟล์ที่บันทึกได้สร้างเสร็จ และบันทึกเรียบร้อยแล้ว ทีนี้ผมก็ไปดูที่ C:AppServwwwtest ผมจะพบว่ามีไฟล์เพิ่มมาคือ weblog.txt นั่นเอง

ซึ่งภายในไฟล์นั้นก็จะมีข้อความดังต่อไปนี้ครับ

ย้อนกลับไปดูที่โค้ด ผมใช้ฟังก์ชัน date ในการดึงข้อมูล วัน เดือน ปี และเวลา (ชั่วโมง นาที วินาที) จากเซิร์ฟเวอร์มาบันทึก ดังนั้น จึงมีวันเดือนปี และเวลา อยู่ข้างหน้าข้อความ "ข้อความที่ 1" ไงครับ...

นี่แค่เบื้องต้นครับ... ไว้เรามาว่ากันต่อตอนหน้าครับ

(ติดตามตอนต่อไป)

<- Back | Next ->

ThaiMisc.Com : Free Webboard | Free GuestBook | Free Poll | Free Ecard Server | Free Java Chat Room | Advertising | Contact Us
Copyright 1999-2006 Thailand Miscellaneous. Allrights reserved. webmaster@thaimisc.com