File và I/O trong PHP

File & I/O trong PHP

Chương này sẽ giải thích các hàm liên quan đến file trong PHP:

  • Mở file
  • Đọc file
  • Ghi file
  • Đóng file

Mở và đóng file trong PHP

Hàm fopen() của PHP được sử dụng để mở một file. Nó yêu cầu 2 tham số, tham số thứ đặc biệt là tên file, và tham số thứ 2 là mode, tức là chính sách để hoạt động.

Mode của file có thể được xác nhận như một trong 6 tùy chọn trong bảng sau.

Mode
Mục đích

r

Mở file và chỉ đọc.

Di chuyển con trỏ file về đầu file

r+

Mở file cho việc đọc và ghi.

Di chuyển con trỏ về đầu file

w

Mở file và chỉ ghi.

Di chuyển con trỏ về đầu file

và cắt bỏ file về độ dài là 0.

Nếu các file không tồn tại, nó sẽ nỗ lực tạo nên một file.

w+

Mở file cho việc đọc và ghi.

Di chuyển con trỏ về đầu file

và cắt bỏ file có độ dài là 0.

Nếu các file không tồn tại, nó sẽ nỗ lực tạo nên một file.

α

Mở file với mục đích chỉ ghi.

Di chuyển con trỏ về cuối file

Nếu các file không tồn tại, nó sẽ nỗ lực tạo nên một file.

α+

Mở file với mục đích đọc và ghi.

Di chuyển con trỏ về cuối file

Nếu các file không tồn tại, nó sẽ nỗ lực tạo nên một file.

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

Sau khoảng thời gian tạo một biến đổi cho file đã mở, việc quan trong giờ đây là đóng nó bởi sử dụng hàm fclose(). Hàm fclose() yêu cầu một con trỏ file như là một tham số của nó và sau đó trả về true nếu việc đóng thành công và false nếu trái lại.

Xem Thêm  Hàm MySQL CAST - mysql truyền thành int

Tiếp thị

Đọc một file trong PHP

Khi một file được mở bằng cách dùng hàm fopen(), nó có thể được đọc với một hàm fread() trong PHP. Hàm này yêu cầu 2 tham số. Chúng phải là con trỏ file và độ dài của file tính bằng nhà cung cấp byte.

Độ dài của file có thể được biết bằng cách dùng hàm filesize() trong PHP, nó nhận tên file như một tham số và trả lại kích thước của file bằng đơn bị byte.

Bạn theo các bước sau để đọc một file với PHP:

  • Mở file sử dụng hàm fopen().

  • Lấy độ dài file sử dụng hàm filesize().

  • Đọc bài viết file sử dụng hàm fread().

  • Đóng file sử dụng hàm fclose().

Giả sử bạn có một tmp.txt có bài viết sau:

Lưu chương trình trên trong một file có tên là check.php trong htdocs, sau đó mở trình duyệt và gõ địa chỉ http://localhost:8080/test.php sẽ cho kết quả:

Chẳng hạn dưới đây gán bài viết của một text file cho một biến, sau đó hiển thị bài viết của chúng trên website.

<htmlvàgt;

   <headvàgt;
      <titlevàgt;Đọc file trong PHP</titlevàgt;
   </headvàgt;
   
   <bodyvàgt;
      
      <?php
         $filename = "tmp.txt";
         $file = fopen( $filename, "r" );
         
         if( $file == false )
         {
            echo ( "Xảy ra lỗi khi mở file!!!" );
            exit();
         }
         
         $filesize = filesize( $filename );
         $filetext = fread( $file, $filesize );
         fclose( $file );
         
         echo ( "Kích cỡ của file là: $filesize byte <br>" );
         echo ( "Dưới đây là nội dung của file: <br>" );
         echo ( "<pre>$filetext</pre>" );
      ?>
      
   </bodyvàgt;
</htmlvàgt;

Lưu chương trình trên trong một file có tên là check.php trong htdocs, sau đó mở trình duyệt và gõ địa chỉ http://localhost:8080/test.php sẽ cho kết quả:

Xem Thêm  4 Ví dụ để sử dụng Hàm cầu nối Python () - python toàn cầu trong chức năng

Ghi file trong PHP

Một file mới có thể được ghi hoặc text có thể được phụ thêm vào một file đang tồn tại bằng cách dùng hàm fwrite() trong PHP. Hàm này yêu cầu 2 tham số: con trỏ file và chuỗi dữ liệu để được ghi. Một tham số integer thứ 3 tùy ý có thể được thêm vào để xác nhận độ dài của dữ liệu sẽ ghi. Nếu tham số thứ 3 được thêm vào, việc ghi sẽ dừng lại sau thời điểm đã được đạt tới độ dài đã xác nhận.

Chẳng hạn sau tạo một text file mới, và ghi một đoạn text ngắn vào phần đầu của nó. Sau khoảng thời gian đóng file này, sự tồn tại của file này được xác định bởi hàm file_exist(), mà sẽ nhận tên file như một tham số.

<?php
   $filename = "tmp.txt";
   $file = fopen( $filename, "w" );
   
   if( $file == false )
   {
      echo ( "Xảy ra lỗi khi mở file" );
      exit();
   }
   fwrite( $file, "Ví dụ ghi file trong PHP.n" );
   fclose( $file );
?>
<htmlvàgt;
   
   <headvàgt;
      <titlevàgt;Ghi file trong PHP</titlevàgt;
   </headvàgt;
   
   <bodyvàgt;
      
      <?php
         $filename = "tmp.txt";
         $file = fopen( $filename, "r" );
         
         if( $file == false )
         {
            echo ( "Xảy ra lỗi khi mở file" );
            exit();
         }
         
         $filesize = filesize( $filename );
         $filetext = fread( $file, $filesize );
         
         fclose( $file );
         
         echo ( "Kích cỡ của file là: $filesize byte <br>" );
         echo("Tên file là: $filename <br>");
         echo ( "Dưới đây là nội dung của file: <br>" );
         echo ( "$filetext" );
         
      ?>
      
   </bodyvàgt;
</htmlvàgt;

Lưu chương trình trên trong một file có tên là check.php trong htdocs, sau đó mở trình duyệt và gõ địa chỉ http://localhost:8080/test.php sẽ cho kết quả:

Và giờ đây bài viết của tmp.txt sẽ là:

Tất cả chúng ta sẽ luận bàn toàn bộ hàm liên quan đến input và output file trong chương Hàm giải quyết File trong PHP.

Xem Thêm  Làm cách nào để tạo danh sách thả xuống bằng JavaScript? - menu thả xuống trong javascript

Đã có app VietJack trên smartphone, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng….Free. Tải ngay áp dụng trên Android và iOS.


Theo dõi http://phptravels.vn/ Free trên mxh facebook và youtube:

Các bạn ở Hà Nội có thể gia nhập khóa học thứ 9 của vietjackteam (đang tuyển sinh) vào cuối tháng 10/2018 do anh Nguyễn Thanh Tuyền, admin vietjack.com trực tiếp giảng dạy tại Hà Nội. Cụ thể bài viết khóa học tham khỏa backlink :
Khóa học Java.Các bạn học công nghệ thông tin, điện tử viễn thông, Multimedia, điện-điện tử, toán tin có thể theo học khóa này.
Số lượng các công việc Java hoặc .NET luôn gấp tối thiểu 3 lần Android hoặc iOS trên thị trường tuyển nhân viên. Khóa online= Đi phỏng vấn, Khóa offline= Đi phỏng vấn+ 1.5 tháng thực tập ngoài công ty.

Mọi người có thể xem dùng thử bài viết khóa học tại địa chỉ Video dùng thử khóa học Offline

Các bạn ở xa học không có điều kiện thời gian có thể tham gia khóa Java online để chủ động cho việc học hành. Từ tháng 4/2018, VietJack khuyến mại giá SỐC chỉ còn 250k cho khóa học, các bạn có thể trả lại tiền nếu như không ưng ý về chất lượng trong 1 tháng, liên hệ facebook admin fb.com/tuyen.vietjack để thanh toán chuyển tiền hoặc thẻ smartphone, khóa học bằng Tiếng Việt với gần 100 video, các bạn có thể chủ động bất kể khi nào, và xem mãi mãi. Thông tin khóa học tại Khóa học Java Online trên Udemy

Follow fanpage của đội nhóm https://www.facebook.com/vietjackteam/ hoặc facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài tiên tiến nhất về Java,₵,₵++,Javascript,HTML,Python,Database,Mobile…. tiên tiến nhất của http://phptravels.vn/.

Các bài học PHP thông dụng khác tại VietJack:

Viết một bình luận