Hướng dẫn read file php

Trong bài này, chúng ta sẽ tìm hiểu về cách open và read file trong PHP. Để học tốt bài này, các bạn cần đọc lại bài Cài đặt môi trường lập trình Web PHP với XAMPP để biết cách chạy ứng dụng web PHP với XAMPP.

1. Mở file với hàm fopen() trong PHP

Hàm fopen() giúp mở một file và đưa file đó vào stream để chuẩn bị đọc/ghi dữ liệu. Cú pháp:

fopen(
  string $filename,
  string $mode,
  bool $use_include_path = false,
  ?resource $context = null
): resource|false

Trong đó,

$filename là đường dẫn của của file cần mở.

$mode là các chế độ khi mở file.

$use_include_path: nếu được đặt là ‘1’ hoặc true thì sẽ tìm file để mở trong include_path.

$context là một context stream.

Các chế độ (mode) khi mở file với fopen()

Chế độ Mô tả
r Mở file và chỉ đọc.
w Mở file và chỉ ghi dữ liệu. Xóa nội dung của file rồi ghi dữ liệu hoặc tạo một file mới nếu file không tồn tại.
a Mở file và chỉ ghi dữ liệu. Nếu file đã tồn tại thì ghi tiếp dữ liệu vào file. Nều file không tồn tại thì tạo một file mới.
x Tạo một file mới và chỉ ghi dữ liệu. Trả về FALSE và một error nếu file đã tồn tại.
r+ Mở file để đọc/ghi dữ liệu.
w+ Mở file để đọc/ghi dữ liệu. Xóa nội dung của file khi đọc/ghi dữ liệu hoặc tạo một file mới nếu file không tồn tại.
a+ Mở file để đọc/ghi dữ liệu. Nếu file đã tồn tại thì đọc/ghi tiếp dữ liệu vào file. Nều file không tồn tại thì tạo một file mới.
x+ Tạo một file mới để đọc/ghi dữ liệu. Trả về FALSE và một error nếu file đã tồn tại.

Giả sử, chúng ta có file gochocit.txt nằm cùng thư mục với file code index.php của PHP với nội dung như sau:

Hello all, welcome to gochocit.com!
Very happy to see you visit gochocit.com.
Hope it might be useful for you!

Đoạn code bên dưới giúp mở và đọc file gochocit.txt.


Kết quả
Hello all, welcome to gochocit.com! Very happy to see you visit gochocit.com. Hope it might be useful for you!

Sau khi mở file với hàm fopen(), chúng ta có thể đọc/ghi file. Nếu không sử dụng nữa thì nên đóng file với hàm fclose().

2.1. Đọc file với hàm readfile() trong PHP

Hàm readfile() giúp đọc một file và ghi file đó vào output buffer. Kết quả trả về của hàm readfile() là số byte đọc được từ file. Nếu không đọc được file thì trả về false.

Number of bytes read from the file: ".$numberofbytes;
?>
Kết quả
Hello all, welcome to gochocit.com! Very happy to see you visit gochocit.com. Hope it might be useful for you!
Number of bytes read from the file: 112

2.2. Đọc file với hàm fread() trong PHP

Hàm fread() giúp đọc file khi đã mở file với hàm fopen(). Cú pháp của hàm fread():

fread(resource $stream, int $length): string|false

Trong đó,

    • $stream là stream của file đã mở (open) với hàm fopen().
    • $length là số byte sẽ được đọc.

Hàm fread() trả về chuỗi (string) đọc được hoặc trả về false nếu đọc file bị lỗi.


Kết quả
Hello all, welcome to gochocit.com! Very happy to see you visit gochocit.com. Hope it might be useful for you!

2.3. Đọc file với hàm fgets() trong PHP

Hàm fgets() được sử dụng để đọc một dòng (single line) từ file.


Kết quả
Hello all, welcome to gochocit.com!

2.4. Đọc file với hàm feof() trong PHP

Hàm feof() kiểm tra xem đến cuối file “end-of-file” (EOF) hay chưa. Hàm feof() giúp lặp qua dữ liệu trong file có số dòng không xác định.

";
}
fclose($myfile);
?>
Kết quả
Hello all, welcome to gochocit.com!
Very happy to see you visit gochocit.com.
Hope it might be useful for you!

2.5. Đọc file với hàm fgetc() trong PHP

Hàm fgetc() được sử dụng để đọc một ký tự đơn lẻ từ một file.


Kết quả
H e l l o a l l , w e l c o m e t o g o c h o c i t . c o m ! V e r y h a p p y t o s e e y o u v i s i t g o c h o c i t . c o m . H o p e i t m i g h t b e u s e f u l f o r y o u !

Ở bài này, chúng ta đã cùng tìm hiểu nhiều hàm đọc (read) file trong PHP. Tùy vào yêu cầu mà chúng ta sử dụng hàm nào cho hợp lý.

  • Cú pháp và cách sử dụng vòng lặp while trong C++
  • Truyền tham trị và tham chiếu cho phương thức trong Java
  • Cách sử dụng biến (variable) và hằng (constant) trong PHP
  • Ngoại lệ (exception) trong PHP
  • Các thao tác cơ bản trên cây nhị phân (Binary Tree)