Mở (open) và đọc (read) file trong PHP

Đây là bài 28/39 bài của series môn học Lập trình Web 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ả
rMở file và chỉ đọc.
wMở 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.
aMở 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.
xTạ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.

<?php
$myfile = fopen("gochocit.txt", "r") or die("Unable to open file!");
echo fread($myfile, filesize("gochocit.txt"));
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!

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. Các hàm đọc file trong PHP

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.

<?php
$numberofbytes = readfile("gochocit.txt");
echo "<br>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.

<?php
$myfile = fopen("gochocit.txt", "r") or die("Unable to open file!");
echo fread($myfile, filesize("gochocit.txt"));
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.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.

<?php
$myfile = fopen("gochocit.txt", "r") or die("Unable to open file!");
echo fgets($myfile);
fclose($myfile);
?>
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.

<?php
$myfile = fopen("gochocit.txt", "r") or die("Unable to open file!");
// Output one line until end-of-file
while(!feof($myfile)) {
    echo fgets($myfile) . "<br>";
}
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.

<?php
$myfile = fopen("gochocit.txt", "r") or die("Unable to open file!");
// Output one line until end-of-file
while(!feof($myfile)) {
    echo fgetc($myfile)." ";
}
fclose($myfile);
?>
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ý.

5/5 - (1 bình chọn)
Bài trước và bài sau trong môn học<< Ngoại lệ (exception) trong PHPTạo (create) và ghi (write) file trong PHP >>
Chia sẻ trên mạng xã hội:

Tác giả Vinh Lê

Vinh Lê hiện đang là biên tập viên tại Góc Học IT.

Bài viết của Vinh Lê

Trả lời

Lưu ý:

1) Vui lòng bình luận bằng tiếng Việt có dấu.

2) Khuyến khích sử dụng tên thật và địa chỉ email chính xác.

3) Mọi bình luận trái quy định sẽ bị xóa bỏ.