fread และ fgets PHP ทั้ง 2 คำสั่งมีไว้สำหรับอ่านข้อมูลจากไฟล์ที่กำหนดทั้งคู่ แตกต่างกันที่ fread อ่านข้อมูลออกมาทั้งหมดตามขนาดไฟล์ ส่วน fgets อ่านข้อมูลทีละบรรทัด และจะหยุดอ่านเมื่อจบบรรทัด สามารถเขียนโปรแกรมได้ดังนี้
ตัวอย่าง ข้อมูลในไฟล์ example.txt
ส้ม
มะละกอ
กล้วย
ส้ม
ตัวอย่างที่ 1 อ่านข้อมูลด้วย fread PHP
<?php
$file_name = "example.txt";
$f = fopen( $file_name, "r" );
$d = fread( $f, filesize($file_name) );
echo nl2br( $d );
fclose( $f );
?>
ตัวอย่างที่ 2 อ่านข้อมูลด้วย fgets PHP
<?php
$file_name = "example.txt";
$f = fopen( $file_name, "r" );
while(!feof($f)) {
$d = fgets($f);
echo nl2br( $d );
}
fclose( $f );
?>
ผลลัพธ์
ส้ม
มะละกอ
กล้วย
ส้ม
1. คำสั่ง fread อ่านข้อมูลทั้งหมดแบบ (raw data) ตามขนาดของไฟล์ โดยไม่สนใจจำนวนบรรทัดของข้อมูลที่อยู่ในไฟล์
2. คำสั่ง fgets อ่านข้อมูลตามบรรทัด (line) และจะหยุดอ่านเมื่อจบบรรทัด เวลาดึงข้อมูลจึงต้องใช้ while เพื่อวนลูปตามจำนวนบรรทัดที่มีอยู่ในไฟล์