PHP - ไฟล์และ I / O

บทนี้จะอธิบายฟังก์ชันต่อไปนี้ที่เกี่ยวข้องกับไฟล์ -

  • การเปิดไฟล์
  • กำลังอ่านไฟล์
  • การเขียนไฟล์
  • การปิดไฟล์

การเปิดและปิดไฟล์

PHP fopen()ฟังก์ชันนี้ใช้เพื่อเปิดไฟล์ ต้องมีสองอาร์กิวเมนต์ที่ระบุชื่อไฟล์ก่อนจากนั้นจึงใช้โหมดที่จะใช้งาน

โหมดไฟล์สามารถระบุเป็นหนึ่งในหกตัวเลือกในตารางนี้

ซีเนียร์ No โหมดและวัตถุประสงค์
1

r

เปิดไฟล์เพื่ออ่านอย่างเดียว

วางตัวชี้ไฟล์ที่จุดเริ่มต้นของไฟล์

2

r+

เปิดไฟล์เพื่ออ่านและเขียน

วางตัวชี้ไฟล์ที่จุดเริ่มต้นของไฟล์

3

w

เปิดไฟล์สำหรับเขียนเท่านั้น

วางตัวชี้ไฟล์ที่จุดเริ่มต้นของไฟล์

และตัดทอนไฟล์ให้มีความยาวเป็นศูนย์ หากไฟล์ไม่มี

มีอยู่แล้วมันจะพยายามสร้างไฟล์

4

w+

เปิดไฟล์สำหรับอ่านและเขียนเท่านั้น

วางตัวชี้ไฟล์ที่จุดเริ่มต้นของไฟล์

และตัดทอนไฟล์ให้มีความยาวเป็นศูนย์ หากไฟล์ไม่มี

มีอยู่แล้วมันจะพยายามสร้างไฟล์

5

a

เปิดไฟล์สำหรับเขียนเท่านั้น

วางตัวชี้ไฟล์ไว้ที่ท้ายไฟล์

หากไม่มีไฟล์ก็จะพยายามสร้างไฟล์

6

a+

เปิดไฟล์สำหรับอ่านและเขียนเท่านั้น

วางตัวชี้ไฟล์ไว้ที่ท้ายไฟล์

หากไม่มีไฟล์ก็จะพยายามสร้างไฟล์

หากความพยายามในการเปิดไฟล์ล้มเหลว fopen ส่งคืนค่าเป็น false มิฉะนั้นจะส่งกลับไฟล์ file pointer ซึ่งใช้สำหรับการอ่านเพิ่มเติมหรือเขียนไปยังไฟล์นั้น

หลังจากทำการเปลี่ยนแปลงกับไฟล์ที่เปิดแล้วสิ่งสำคัญคือต้องปิดด้วยไฟล์ fclose()ฟังก์ชัน fclose() ฟังก์ชันต้องการตัวชี้ไฟล์เป็นอาร์กิวเมนต์แล้วส่งกลับ true เมื่อการปิดสำเร็จหรือ false ถ้ามันล้มเหลว

กำลังอ่านไฟล์

เมื่อเปิดไฟล์โดยใช้ไฟล์ fopen() สามารถอ่านได้ด้วยฟังก์ชันที่เรียกว่า fread(). ฟังก์ชันนี้ต้องการสองอาร์กิวเมนต์ สิ่งเหล่านี้ต้องเป็นตัวชี้ไฟล์และความยาวของไฟล์ที่แสดงเป็นไบต์

ความยาวไฟล์สามารถพบได้โดยใช้ไฟล์ filesize() ซึ่งใช้ชื่อไฟล์เป็นอาร์กิวเมนต์และส่งกลับขนาดของไฟล์ที่แสดงเป็นไบต์

ต่อไปนี้เป็นขั้นตอนที่จำเป็นในการอ่านไฟล์ด้วย PHP

  • เปิดไฟล์โดยใช้ fopen() ฟังก์ชัน

  • รับความยาวของไฟล์โดยใช้ filesize() ฟังก์ชัน

  • อ่านเนื้อหาของไฟล์โดยใช้ fread() ฟังก์ชัน

  • ปิดไฟล์ด้วย fclose() ฟังก์ชัน

ตัวอย่างต่อไปนี้กำหนดเนื้อหาของไฟล์ข้อความให้กับตัวแปรจากนั้นแสดงเนื้อหาเหล่านั้นบนเว็บเพจ

<html>

   <head>
      <title>Reading a file using PHP</title>
   </head>
   
   <body>
      
      <?php
         $filename = "tmp.txt";
         $file = fopen( $filename, "r" );
         
         if( $file == false ) {
            echo ( "Error in opening file" );
            exit();
         }
         
         $filesize = filesize( $filename );
         $filetext = fread( $file, $filesize );
         fclose( $file );
         
         echo ( "File size : $filesize bytes" );
         echo ( "<pre>$filetext</pre>" );
      ?>
      
   </body>
</html>

มันจะให้ผลลัพธ์ดังต่อไปนี้ -

การเขียนไฟล์

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

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

<?php
   $filename = "/home/user/guest/newfile.txt";
   $file = fopen( $filename, "w" );
   
   if( $file == false ) {
      echo ( "Error in opening new file" );
      exit();
   }
   fwrite( $file, "This is  a simple test\n" );
   fclose( $file );
?>
<html>
   
   <head>
      <title>Writing a file using PHP</title>
   </head>
   
   <body>
      
      <?php
         $filename = "newfile.txt";
         $file = fopen( $filename, "r" );
         
         if( $file == false ) {
            echo ( "Error in opening file" );
            exit();
         }
         
         $filesize = filesize( $filename );
         $filetext = fread( $file, $filesize );
         
         fclose( $file );
         
         echo ( "File size : $filesize bytes" );
         echo ( "$filetext" );
         echo("file name: $filename");
      ?>
      
   </body>
</html>

มันจะให้ผลลัพธ์ดังต่อไปนี้ -

เราได้กล่าวถึงฟังก์ชันทั้งหมดที่เกี่ยวข้องกับการป้อนไฟล์เข้าและออกในบทPHP File System Function