Làm việc với tập tin trong PHP

Dữ liệu được xuất lên web có thể được truy xuất từ cơ sở dữ liệu hoặc có thể truy xuất từ tập tin như: .txt, .xml,…

Để mở một tập tin, chúng ta cần xác định chế độ mở. Có 3 tùy chọn cho chế độ mở file:

Mở file ở chế độ read only, write only hay cả read và write.

Mở file đã tồn tại: chúng ta có thể ghi đè hay ghi thêm vào nội dung đang có của file. Trong trường hợp ghi thêm vào nội dung đã có của file, có hai cách ghi là ghi vào đầu tập tin và ghi vào cuối của tập tin.

Khi muôn ghi file hệ thống thì chúng ta cần chỉ định chế độ ghi file là nhị phân hoặc text.

Phân loại các chế độ mở file cơ bản:

 Chế độ    Mô tả
 r   Chỉ đọc file, bắt đầu đọc đầu file
 r+  Đọc và ghi file: Bắt đầu từ đầu file
 w  Chỉ ghi file. Mở và xóa toàn bộ nội dung của file đã có hoặc tạo ra một file mới nếu file đó không tồn tại, sau đó ghi nội dung vào file.
 w+   Đọc và ghi. Mở và xóa toàn bộ nội dung của file đã có hoặc tạo ra một file mới nếu file đó không tồn tại, sau đó ghi nội dung vào file
 a  Chỉ ghi file. Mở và ghi nội dung vào cuối file hoặc tạo ra một file mới nếu file không tồn tại.
a+ Ghi và đọc dữ liệu. Mở và ghi nội dung vào cuối file hoặc tạo ra một file mới nếu file không tồn tại.
x Tạo và mở file để ghi. Tạo ra một file mới và ghi nội dung vào file. Nếu file đã tồn tại, trả về giá trị FALSE và thông báo lỗi.
x+ Tạo và mở file để đọc và ghi. Tạo ra một file mới và ghi nội dung vào file. Nếu file đã tồn tại, trả về giá trị FALSE và thông báo lỗi.

Mở tập tin

Để mở tập tin chúng ta sử dụng hàm fopen().

Cú pháp: fopen(<tên_tập_tin>,<chế độ mở>)

Ví dụ:

Kiểm tra kết thúc tập tin

Để kiểm tra trạng thái kết thúc tập tin hay chưa chúng ta sử dụng hàm feof()

Cú pháp: feof($f)

Trong đó $f là biến khai báo nhận giá trị trả về của hàm fopen(). Hàm trả về kết quả là TRUE nếu con trỏ ở cuối file.

Ví dụ:

Duyệt và đọc từng dòng nội dung trong tập tin

Khi mở file chúng ta có thể đọc nội dung đã được mở theo từng dòng bằng hàm fgets(). Hàm sẽ trả về là chuỗi có độ dài xác định, mặc định độ dài là 1024.

Cú pháp: fgets($f [, int độ dài])

Ví dụ:

Duyệt và đọc từ ký tự trong tập tin

Để đọc nội dung tập tin theo từng ký tự 1 ta sử dụng hàm fgetc()

Cú pháp: fgetc($f)

Ví dụ:

Đọc toàn bộ nội dung tập tin

Để đọc toàn bộ nội dung tập tin ta sử dụng hàm readfile().

Cú pháp: readfile(<đường dẫn và tên tập tin>);

Ví dụ:

Định dạng tập tin.

Trước khi ghi chuỗi vào file, chúng ta cần phải định dạng lại chuỗi đó theo nhu cầu xuất dữ liệu trở lại khi đọc file.

Cách thức định dạng là do chúng ta tự thiết lập. Tuy nhiên, có một số định dạng được quy định sẵn như sau:

+ \t : nhảy tab

+ \n : xuống dòng

Ghi nội dung tập tin

Để ghi nội dung vào tập tin ta sử dụng hàm fwrite()

Cú pháp: fwrite(<tập tin>, <nội dung [, <độ dài>]>);

Ví dụ:

Đóng tập tin.

Để đóng tập tin đã mở ta sử dụng hàm fclose()

Cú pháp: fclose($f)

Trong đó $f là tên biến nhận giá trị trả về của hàm fopen()

Kiểm tra sự tồn tại của tập tin

Để mở file ta thường gặp hai trạng thái, file đó đã có hoặc file đó không tồn tại.

Để kiểm tra sự tồn tại của file ta sử dụng hàm file_exists() hoặc is_file()

Cú pháp: file_exists(<tập tin>)

Trong đó: Hàm trả về kết quả TRUE hoặc FALSE, nếu tồn tại trả về giá trị là TRUE, ngược lại trả về giá trị FALSE

Ví dụ:

Kiểm tra kích thước file

Để kiểm tra kích thước file ta sử dụng hàm filesize()

Cú pháp: filesize(<đường dẫn và tên của file>);

Vi dụ:

Xóa tập tin

Để xóa tập tin ta sử dụng hàm unlink()

Cú pháp: unlink(<tập tin>)

Ví dụ:

 

Học PHP Cơ bản