Devdit
 

fread และ fgets PHP แตกต่างกันอย่างไร เขียนยังไง

1.3K

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 เพื่อวนลูปตามจำนวนบรรทัดที่มีอยู่ในไฟล์

แก้ไข 2 ปีที่แล้ว
ชอบ
ลิ้งก์
แชร์
Devdit มีช่อง YouTube แล้ว
เราสร้างวิดีโอเกี่ยวกับเทคโนโลยี ทำตามง่ายๆ