PHP - Files & I/O

Chương này sẽ giải thích các chức năng liên quan đến tệp sau đây −

  • Opening a File
  • Reading a File
  • Writing a File
  • Closing a File

Opening and Closing Files

Hàm PHP fopen() được sử dụng để mở một tệp. Nó yêu cầu hai tham số, đầu tiên là tên tệp và sau đó là chế độ hoạt động.

Các chế độ tệp có thể được chỉ định là một trong sáu tùy chọn trong bảng này.

Sr.No Mode & Purpose
1 r Opens the file for reading only. Places the file pointer at the beginning of the file.
2 r+ Opens the file for reading and writing. Places the file pointer at the beginning of the file.
3 w Opens the file for writing only. Places the file pointer at the beginning of the file. and truncates the file to zero length. If files does not exist then it attempts to create a file.
4 w+ Opens the file for reading and writing only. Places the file pointer at the beginning of the file. and truncates the file to zero length. If files does not exist then it attempts to create a file.
5 a Opens the file for writing only. Places the file pointer at the end of the file. If files does not exist then it attempts to create a file.
6 a+ Opens the file for reading and writing only. Places the file pointer at the end of the file. If files does not exist then it attempts to create a file.

Nếu một nỗ lực mở một tệp thất bại thì fopen trả về giá trị false nếu không nó trả về một file pointer được sử dụng cho việc đọc hoặc ghi thêm vào tệp đó.

Sau khi thực hiện thay đổi trên tệp đã mở, việc đóng tệp đó bằng hàm fclose() là rất quan trọng. Hàm fclose() yêu cầu một con trỏ tệp làm tham số và sau đó trả về true khi việc đóng thành công hoặc false nếu thất bại.

Reading a File

Khi một tệp được mở bằng hàm fopen() , nó có thể được đọc bằng một hàm gọi là fread() . Hàm này yêu cầu hai tham số. Đây phải là con trỏ tệp và độ dài của tệp được biểu thị bằng byte.

Độ dài của tệp có thể được tìm thấy bằng cách sử dụng hàm filesize() nhận tên tệp làm tham số và trả về kích thước của tệp được biểu thị bằng byte.

Vậy đây là các bước cần thiết để đọc một tệp với PHP.

  • Mở một tệp bằng cách sử dụng hàm fopen() .

  • Lấy độ dài của tệp bằng cách sử dụng hàm filesize() .

  • Đọc nội dung của tệp bằng cách sử dụng hàm fread() .

  • Đóng tệp bằng hàm fclose() .

Example

Ví dụ sau đây gán nội dung của một tệp văn bản vào một biến và sau đó hiển thị những nội dung đó trên trang web.

<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>

Nó sẽ tạo ra kết quả sau −

Reading File

Writing a File

Một tệp mới có thể được viết hoặc văn bản có thể được thêm vào một tệp hiện có bằng cách sử dụng hàm PHP fwrite() . Hàm này yêu cầu hai tham số chỉ định một file pointer và chuỗi dữ liệu sẽ được viết. Tùy chọn, một tham số số nguyên thứ ba có thể được bao gồm để chỉ định độ dài của dữ liệu cần viết. Nếu tham số thứ ba được bao gồm, việc ghi sẽ dừng lại sau khi độ dài được chỉ định đã được đạt đến.

Example

Ví dụ sau tạo một tệp văn bản mới và sau đó ghi một tiêu đề văn bản ngắn bên trong. Sau khi đóng tệp này, sự tồn tại của nó được xác nhận bằng cách sử dụng hàm file_exist() , hàm này nhận tên tệp làm đối số.

<?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>

Nó sẽ tạo ra kết quả sau −

Writing File

Chúng tôi đã đề cập đến tất cả các chức năng liên quan đến nhập và xuất tệp trong chương PHP File System Function .