Cách xử lý file trong PHP

CHÀO MỪNG BẠN ĐẾN VỚI THƯ VIỆN HỌC TẬP & ĐÀO TẠO CƠ BẢN

Các hàm xử lý file trong PHP

Trong bài này, chúng tôi sẽ hướng dẫn bạn cách mở, đọc và đóng file trên máy chủ.


Mở File trong PHP bằng  hàm fopen()

Một cách để mở file dễ dàng là dùng hàm fopen(). Hàm này cho bạn nhiều lựa chọn hơn là sử dụng readfile().

Hàm fopen() sẽ mở một file dựa vào đường dẫn truyền vào. Nếu truyền vào một URL, hàm sẽ sẽ tìm kiếm một trình xử lý giao thức(wrapper) cho URL đó, nếu không có trính xử lý nào đươc cung cấp, nó sẽ cảnh báo cho người dùng và sau đó tiếp tục như đối với các file bình thường.

Cú pháp:

AJAX = Asynchronous JavaScript and XML
CSS = Cascading Style Sheets
HTML = Hyper Text Markup Language
PHP = PHP Hypertext Preprocessor
SQL = Structured Query Language
SVG = Scalable Vector Graphics
XML = EXtensible Markup Language

Mở File trong PHP bằng  hàm fopen()

Một cách để mở file dễ dàng là dùng hàm fopen(). Hàm này cho bạn nhiều lựa chọn hơn là sử dụng readfile().

Hàm fopen() sẽ mở một file dựa vào đường dẫn truyền vào. Nếu truyền vào một URL, hàm sẽ sẽ tìm kiếm một trình xử lý giao thức(wrapper) cho URL đó, nếu không có trình xử lý nào được cung cấp, nó sẽ cảnh báo cho người dùng và sau đó tiếp tục như đối với các file bình thường.

Cú pháp:

<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
echo fread($myfile,filesize("webdictionary.txt"));
fclose($myfile);
?>

Hàm fopen() và hàm fclose() sẽ được giải thích như sau:

Danh sách các quyền truy cập vào file

Mode Chú thích
r Chỉ được đọc (Read only)
r+ Được quyền đọc và ghi (Read + write)
w Chỉ được viết (write only)
w+ Được quyền đọc và viết (write + read). Nếu file này tồn tại thì nội dung cũ sẽ bị xóa đi và ghi lại nội dung mới, còn nếu file chưa tồn tại thì nó tạo file mới
a Được quyền viết và nếu file tồn tại nó sẽ ghi tiếp nội dung phía dưới, ngược lại nếu file không tồn tại nó tạo file mới
a+ Được quyền viết và đọc. Nếu file tồn tại nó sẽ ghi tiếp nội dung phía dưới, ngược lại nếu file không tồn tại nó tạo file mới
b Mở dưới dạng chế độ binary

Hàm đọc file – fread () trong PHP

Ta dùng hàm fread để đọc và mở file.

Thông số trong hàm fread() chứa tên của file dùng để đọc dữ liệu và thông số thứ hai là một số lượng bytes nhất định để đọc dữ liệu.

Đoạn mã code trong PHP dưới đây có thể đọc file “webdictonary.txt” đến cuối cùng:

fread($myfile,filesize("webdictionary.txt"));

Đóng file bằng hàm fclose() trong PHP

Đóng file trong PHP được dùng để đóng một file đang mở. Hàm fclosed() đòi hỏi tên của file ( hoặc biến chứa tên file), chúng ta muốn đóng file có thể làm như sau:

<?php
$myfile = fopen("webdictionary.txt", "r");
// some code to be executed....
fclose($myfile);
?>

Đọc từng dòng trong PHP – fgets()

Hàm fgets() được dùng để đọc từng dòng, đọc từng ký tự và đọc hết file. Ở cách này chúng ta vẫn dùng feof để kiểm tra xem vị trí đang duyệt đã ở cuối cùng của file chưa và dùng hàm fgets để in ra từng dùng của file.

Ví dụ dưới đây xuất ra dòng đầu tiên của file: “webdictionary.txt”

<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
echo fgets($myfile);
fclose($myfile);
?>

Dùng hàm feof() để kiểm tra cuối file

Hàm feof()đặt trong vòng lặp while để sau khi đọc xong nó sẽ chuyển sang dòng mới hoặc ký tự mới.

Hàm feof() hữu ích khi lặp lại những dữ liệu không xác định được độ dài.

Ví dụ:

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

Dùng hàm Fget() để đọc từng kí tự trong PHP

Hàm fget() được dùng để đọc từng ký tự trong một file.

Ví dụ:

<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
// Output one character until end-of-file
while(!feof($myfile)) {
  echo fgetc($myfile);
}
fclose($myfile);
?>

Tham khảo thêm các khóa học lập trình web từ Front-end đến Back-end do trực tiếp giảng viên quốc tế trường FPT Arena giảng dạy giúp bạn thành thạo kỹ năng lập trình web từ CƠ BẢN – NÂNG CAO với giá chỉ từ 290,000đ:

Combo lập trình web với word press từ A-Z