Hướng dẫn đọc file php



Có nhiều hàm khác nhau để đọc file trong PHP được đưa ra như dưới đây:

  • fread(): cho phép bạn đọc tất cả dữ liệu của một file.
  • fgets(): cho phép bạn đọc từng dòng của một file.
  • fgetc(): cho phép bạn đọc từng ký tự của một file.

Đọc file trong PHP - Hàm fread()

Hàm PHP fread() được sử dụng để đọc toàn bộ dữ liệu của file. Nó yêu cầu hai đối số: resource và kích thước file.

Cú pháp:

string fread (resource $handle, int $length)

$handle đại diện cho con trỏ tập tin được tạo bởi hàm fopen ().

$length đại diện cho độ dài byte được đọc.

Ví dụ:

$contents
";//in nội dung của file ra màn hình fclose($fp);//đóng file ?>

Kết quả:

Hello,
đây là dòng đầu tiên
đây là một dòng khác
đây là dòng cuối cùng



Đọc file trong PHP - Hàm fgets()

Hàm PHP fgets() được sử dụng để đọc từng dòng từ một file. Để lấy tất cả dữ liệu bằng hàm fgets(), sử dụng hàm feof() bên trong vòng lặp while.

Cú pháp:

string fgets ( resource $handle [, int $length ])

Ví dụ 1: đọc một dòng từ file.

Kết quả:

Ví dụ 1: đọc toàn bộ file theo từng dòng một.

";
}

fclose($fp);
?>

Kết quả:

Hello,
đây là dòng đầu tiên
đây là một dòng khác
đây là dòng cuối cùng


Đọc file trong PHP - Hàm fgetc()

Hàm PHP fgetc() được sử dụng để đọc ký tự đơn từ file. Để lấy tất cả dữ liệu bằng hàm fgetc(), sử dụng hàm feof() bên trong vòng lặp while.

Cú pháp:

string fgetc ( resource $handle)

Ví dụ 1: đọc một ký tự từ file.

Kết quả:

Ví dụ 2: đọc toàn bộ file theo từng ký tự một.

";
    } else {
        echo $c;
    }
}
fclose($fp);
?>

Kết quả:

Hello, 
đây là dòng đầu tiên 
đây là một dòng khác 
đây là dòng cuối cùng



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

  • Java collections framework: Map interface và lớp HashMap
  • Cấu trúc dữ liệu List trong Python
  • Cấu trúc vòng lặp for và foreach trong PHP
  • Các cấu trúc điều khiển vòng lặp for và for-each trong Java
  • Sửa (update) dữ liệu và câu lệnh drop trong MySQL với PHP