01/10/2018, 15:30

Bài 11: Nhập Xuất FILE Trong PHP

Bài học này sẽ diễn giải các hàm liên quan đến thao tác file: Mở một file Đọc file Ghi file Đóng file Mở và Đóng Files Hàm fopen dùng để mở một file. Nó yêu cầu 2 đối số, bắt đầu là tên file và sau đó là chế độ hay nói đúng hơn là phạm vi thao tác. Cú pháp: $file = ...

Bài học này sẽ diễn giải các hàm liên quan đến thao tác file:

  • Mở một file
  • Đọc file
  • Ghi file
  • Đóng file

Mở và Đóng Files

Hàm fopen dùng để mở một file. Nó yêu cầu 2 đối số, bắt đầu là tên file và sau đó là chế độ hay nói đúng hơn là phạm vi thao tác.

Cú pháp: $file = fopen( $filename, “phạm vi thao tác” );

Có tổng cộng 6 phạm vi thao tác file như sau:

Phạm vi Mục đích
r Phạm vi này chỉ cho đọc file.

Đặt con trỏ ở đầu file. Tức là đọc từ dòng đầu tiên đến hết file

r+ Mở file cho đọc và ghi.

Đặt con trỏ đầu file

w File được mở chỉ cho ghi.

Xóa nội dung file tồn tại hoặc tạo file mới nếu chưa có.

Đặt con trỏ đầu file

w+ Tương tự chỉ thị w và cho khả năng đọc.

Đặt con trỏ đầu file

a Mở file chỉ cho ghi.

Đặt con trỏ cuối file.

Nếu file không tồn tại sẽ tạo file mới.

a+ Mở file cho đọc và ghi.

Đặt con trỏ cuối file.

Nếu file không tồn tại sẽ tạo file mới.

Nếu mở file bị thất bại thì hàm fopen sẽ trả về giá trị là false.

Sau khi thay đổi nội dung file đã mở, bạn luôn nhớ rằng phải đóng nó với hàm fclose().Nếu không các thao tác khác lên file se không thực hiện được, và tốn vùng nhớ vì phải giữ bộ nhớ cho việc mở file.

Đọc một file

Một khi file đã được mở khi sử dụng hàm fopen thì nó có thể được đọc với hàm fread(). Hàm này yêu cầu 2 đối số : con trỏ file và chiều dài byte của file. Nếu muốn đọc hết file thì chúng ta đưa vào kích thước tối đa của file.

Để đọc chiều dài của file chúng ta dùng hàm filesize(), hàm này sẽ lấy tên file làm đối số và trả về kích thước của file bằng đơn vị là byte.

Sau đây là thứ tự các hàm chúng ta dùng để đọc file:

  1. fopen //mở file
  2. filesize //lấy kích thước file
  3. fread //đọc nội dung file
  4. fclose //đóng file

Chúng ta xét ví dụ đọc nội dung 1 file và in nội dung đó ra màn hình

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

Các bạn chuẩn bị 1 file có tên là tmp.txt và bỏ nó vào cùng thư mục cùng cấp với file php, tôi giả sử bạn tạo file index.php với nội dung như ví dụ, và 1 file tmp.text nằm cùng cấp với index.php, chạy chương trình ở trình duyệt bạn sẽ thấy được nội dung của file.

Hãy thay đổi các phạm vi đọc file để trãi nghiệm nhé.

Ghi một file

Một file mới có thể được ghi hoặc nội dung có thể được cộng thêm, bổ sung thêm nếu file tồn tại bằng cách sử dụng hàm fwrite. Hàm này yêu cầu 2 đối số là con trỏ file và nội dung dữ liệu để ghi vào file.

Ngoài ra có một đối số (tùy chọn) thứ 3 để chỉ ra chiều dài dữ liệu để ghi, giả sử tôi cần ghi thêm 2 byte dữ liệu mà thôi thì nếu bạn cho nội dung cần ghi vào nhiều hơn 2 byte thì nó chỉ ghi 2 byte rồi phần còn dư nó cắt bỏ.

Chúng ta xét một ví dụ sau : tạo một file mới và ghi một chuỗi nội dung ngắn như sau:

<?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 ” );

   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>

Ví dụ trên khi chạy sẽ ra kết quả là : Error in opening new file.

Vì sao ?????.

Để kiễm tra file có tồn file hay không chúng ta dùng hàm file_exist(), hàm này dùng tên file làm đối số.

Chúng ta đã đi qua các thao tác làm việc với file trong PHP rồi. Các bạn hãy bật server lên và chạy nó, đừng quên thay đổi phạm vi đọc/ghi file để trãi nghiệm nhé.

Bài liên quan

[BÀI 11] XỬ LÝ FORM TRONG PHP

Tổng quan Một trong những ứng dụng quan trong của PHP đó là giúp tương tác xử lý dữ liệu trên form của người sử dụng. Nhằm mục đích giúp cập nhật thông tin một cách linh động và dễ dàng quản lý chúng hơn bởi sự kết hợp tuyệt vời của cơ sở dữ liệu. Tuy nhiên để làm được điều ấy PHP yêu cầu form ...

Hoàng Hải Đăng viết 17:01 ngày 04/10/2018

Lập trình C: Bài 14 – Nhập xuất file trong C/C++

Lập trình C: Bài 14 – Nhập xuất file trong C/C++ Tháng Một 20, 2018 nguyenvanquan7826 TUT C cơ bản 2 responses Trong quá trình lập trình, chúng ta thường phải đọc và ghi dữ liệu ra file. Bài này sẽ hướng dẫn các bạn cách làm đơn ...

Hoàng Hải Đăng viết 22:41 ngày 01/10/2018

Bài 16: Upload file trong PHP

Để có thể upload được một file hoặc nhiều file chúng ta cần có: Form phải chỉ định thuộc tính enctype="multipart/form-data" Thẻ Input field có thuộc tính type="file" Để có thể upload được nhiều file bạn có thể thiết lập thêm thuộc tính multiple="multiple" ...

Trần Trung Dũng viết 16:32 ngày 01/10/2018

Bài 10: Các hàm xử lý file trong php

1. Lưu ý: Trước khi làm việc với file chúng ta cần lắm chắc một vấn đề là file đó có được cấp những quyền(Permission) gì để làm việc với file đó. Thông qua một hàm chmod() hoặc riêng với trường hợp ghi dữ liệu is_writable() . Trong PHP để kiểm tra chmod một file thì ta làm như sau. ...

Trần Trung Dũng viết 16:27 ngày 01/10/2018

Bài 11: Nhập Xuất FILE Trong PHP

Bài học này sẽ diễn giải các hàm liên quan đến thao tác file: Mở một file Đọc file Ghi file Đóng file Mở và Đóng Files Hàm fopen dùng để mở một file. Nó yêu cầu 2 đối số, bắt đầu là tên file và sau đó là chế độ hay nói đúng hơn là phạm vi thao tác. Cú pháp: $file = ...

Vũ Văn Thanh viết 15:30 ngày 01/10/2018
0