File & I/O trong PHP - AGOLA File & I/O trong PHP - AGOLA

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ứ nhất là tên file, và tham số thứ 2 là mode, tức là chế độ để hoạt động.

Mode của file có thể được xác định 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ẽ cố gắng tạo ra 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ẽ cố gắng tạo ra một file.

a 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ẽ cố gắng tạo ra một file.

a+ 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ẽ cố gắng tạo ra một file.

Nếu cố gắng mở một file thất bại, khi đó hàm fopen trả về một giá trị false, nếu 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 khi tạo một thay đổi cho file đã mở, việc quan trong bây giờ 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 ngược lại.

Đọc một file trong PHP

Khi một file được mở bằng cách sử 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 đơn vị byte.

Độ dài của file có thể được biết bằng cách sử dụng hàm filesize() trong PHP, nó nhận tên file như một tham số và trả lại kích 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 nội dung file sử dụng hàm fread().
  • Đóng file sử dụng hàm fclose().

Giả sử bạn có một file chứa nội dung có tên tmp.txt. Nếu chưa có, hãy tạo một file text với nội dung bất kỳ.

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

Ví dụ dưới đây gán nội dung của một text file cho một biến, sau đó hiển thị nội dung của chúng trên trang web.

<html> <head> <title>Đọc file trong PHP</title> </head> <body> <?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: $filesize bytes" );
 echo ( "Nội dung của file: <br>" ); echo ( "<pre>$filetext</pre>" ); ?> </body> </html>

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

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 sử 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 độ 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 khi đã được đạt tới độ dài đã xác định.

Ví dụ 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 khi đóng file này, sự tồn tại của file này được xác nhận 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 );
?>
<html>
 
 <head>
 <title>Ghi file trong PHP</title>
 </head>
 
 <body>
 
 <?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" );
 
 ?>
 
 </body>
</html>

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

Ghi file trong PHP

Và bây giờ nội dung của tmp.txt sẽ là:

Nội dung của tmp.txt

Chúng ta sẽ thảo luận tất cả hàm liên quan đến input và output file trong chương Hàm xử lý File trong PHP.

Các lý do cần đọc trước khi quyết định liên hệ tôi 

  1. Tham gia group Mua bán Google Ads và Google Shopping :

    https://www.facebook.com/groups/314513929300715

  2. Tham gia group mua bán cho thuê tài khoản BM Agency :

    https://www.facebook.com/groups/1204318359703229

  3. AGOLA chỉ cung cấp dịch vụ không có dịch vụ tư vấn hiểu tới đâu bán tới đó !
  4. Các dịch vụ liên quan đến hướng dẫn : diễn ra từ 5-30 phút thông qua teamview hoặc ultral thời gian càng ngắn giá tiền càng cao nên các bạn đọc kỹ trước khi sử dụng
  5. Các sản phẩm dịch vụ không có thương thảo giá và cũng không có hỏi thêm
  6. Không bán vĩnh viễn mọi dịch vụ mua nhầm đòi đổi sang gói dịch vụ khác
  7. Thông tin bảo hành gần như không có nhưng cũng có một số dịch vụ có bảo hành đề nghị đọc kỹ trước khi quyết định mua
  8. Quyết định mua hàng là đồng ý các điều khoản mua bán và điều khoản không được lấy lại tiền và không bồi hoàn
  9. Mua hàng thì xin đọc kỹ điều khoản ở từng mô tả trước khi quyết định nhấc máy liên hệ ở thông tin của từng gói dịch vụ
  10. Mọi giao dịch đều được phải bắt buộc chụp màn hình chuyển khoản gửi vào Zalo
  11. Các đối tượng cố ý chuyển tiền gói này để trục lợi sử dụng gói khác đều được coi là hình vi lừa đảo ! Cố ý ghi nội dung hiểu lầm về chuyển tiền để đôi co đòi sử dụng gói dịch vụ khác cũng vậy !
  12. Tôi là dân khối A nên việc viết sai lỗi chính tả thì kệ mẹ tôi thích thì mua không thích thì đừng soi đi ra chỗ khác do tôi không có soát lại chính tả nên các bạn đọc thay vì thắc mắc thì thông cảm giùm tôi ! miễn sao tôi truyền tải thông tin bạn đọc bạn thấy hiểu được bạn sử dụng không được bạn tìm bên khác
  13. Tôi không làm việc với bọn cử nhân viên là các công ty Agency , truyền thông gọi hỏi dò hỏi luyên thuyên ! Nếu cố tình tôi sẽ dùng CRM Agency cấm lock chạy Ads vĩnh viễn khi nhìn thấy đuôi theo rõi của doanh nghiệp đó mà tôi đã gán.
  14. Tôi không làm việc với bọn nào thì tôi chạy tiền tỷ tôi tiêu tiền tỷ nhưng chạy demo trước nếu ngon thì vít lớn nhưng sau 3 ngày thuê thấy đéo thấy như cam kết về ngân sách
  15. Tôi không hợp tác ăn chia hay kiểu Win Win đôi bên có lợi
  16. Tất cả những câu hỏi khi gọi điện khiến tôi nghĩ rằng bạn chưa đọc kỹ thông tin trên website sẽ được tôi từ chối vô điều kiện
  17. Không làm việc các công ty có các nhân vật nổi tiếng trên các đài báo truyền hình bởi vậy bớt quảng cáo
  18. Các đối tượng cố tình lên mạng tìm kiểm thông tin tôi và không có trao đổi được tôi dùng Zalo : O9O9.456.866 gửi STK thông tin thanh toán của tôi qua zalo đó mà vẫn chuyển tiền vào tài khoản của tôi được coi là hình vi lừa đảo cố tình trọc phá và lợi dụng sử dụng lừa đảo để mong muốn sử dụng dịch vụ của tôi nhưng vì cấm nên phải làm vậy
  19. Kiến thức của đại đa số dân trên mạng không sai mà chỉ đúng với bọn gà mờ mà thôi kiểu như bạn học lớp 1 cô giáo nói 1 không trừ được cho 2 lên cấp 2 cô giáo nói 1 trừ được cho 2 ! Lúc đó cô giáo cấp 1 hay thầy giáo cấp 2 không nói ai đúng ai sai được mà tại thời điểm đó bạn thấy nó đúng còn khi đi sâu vào nó đéo đúng 😀 ! Cũng như việc tôi bán dịch vụ cho dân trong nghề việc tôi có bắt mấy thằng cấp 1 nuốt kiến thức chuyên sâu của cấp 2 là không được bởi vậy dân nào hiểu sẽ liên hệ mua chứ đừng kiểu lơ mở hỏi cho vui cửa vui nhà

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Call Now Button
X