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.
Nội dung chính
Đọ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ụ:
<?php $filename = "D:\\file1.txt"; $fp = fopen($filename, "r");//mở file ở chế độ đọc $contents = fread($fp, filesize($filename));//đọc file echo "<pre>$contents</pre>";//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.
<?php $fp = fopen("D:\\file1.txt", "r");//mở file ở chế độ đọc echo fgets($fp); fclose($fp); ?>
Kết quả:
Hello,
Ví dụ 1: đọc toàn bộ file theo từng dòng một.
<?php $fp = fopen("D:\\file1.txt", "r");//mở file ở chế độ đọc while(! feof($fp)) { echo fgets($fp). "<br />"; } 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.
<?php $fp = fopen("D:\\file1.txt", "r");//mở file ở chế độ đọc echo fgetc($fp); fclose($fp); ?>
Kết quả:
H
Ví dụ 2: đọc toàn bộ file theo từng ký tự một.
<?php $fp = fopen("D:\\file1.txt", "r");//mở file ở chế độ đọc while (! feof ($fp)) { $c = fgetc($fp); if ($c == "\n") { echo "<br>"; } 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