Bài 5: Tìm hiểu quy trình làm việc trên file trong PHP
Một trong những tác vụ đặc biệt của PHP đó là cho phép xử lý dữ liệu trực tiếp thông qua quá trình nhận và đọc nội dung trên 1 file dữ liệu. Điều này giúp cho PHP trở nên tinh tế và dễ tùy biến hơn khi xử lý 1 lượng dữ liệu có quy mô lớn. Việc thao tác mở, đọc, ghi, đóng file này cũng có ý nghĩa tuần tự như bạn đang làm việc trực tiếp trên 1 file dữ liệu thực thụ.
1- Đóng, mở 1 file trong PHP:
Để mở 1 file ta sử dụng cú pháp sau: fopen("Đường dẫn", thuộc tính).
Trong đó Đường dẫn chính là đường dẫn tới file cần mở.
Thuộc tính bao gồm các quyền hạn cho phép thao tác trên file đó như thế nào.
Các thuộc tính cơ bản :
Ví dụ:
<?php
$fp=fopen("test.txt",r)or exit("khong tim thay file can mo");
?>
$fp=fopen("test.txt",r)or exit("khong tim thay file can mo");
?>
Tương tự như thế, để đóng 1 file ta có cú pháp như sau: fclose(file vừa mở)
Ví dụ:
<?php
$fp=fopen("test.txt",r)or exit("khong tim thay file can mo");
fclose($fp);
?>
$fp=fopen("test.txt",r)or exit("khong tim thay file can mo");
fclose($fp);
?>
Việc mở và đóng này không có ý nghĩa là chúng đã được đọc. Muốn đọc được nội dung của file chúng ta lại tiếp tục với thao tác lấy dữ liệu từ file nữa.
2- Đọc và ghi file trong PHP.
a) Đọc 1 file trong PHP
PHP cho ta nhiều sự lựa chọn trong việc đọc 1 file. Có nhiều hình thức hỗ trợ nhưng hiện nay 2 hình thức phổ biến nhất vẫn là đọc file theo từng dòng và đọc file theo từng ký tự.
- Đọc file theo từng dòng:
Cú pháp : fgets(file vừa mở).
Ví dụ:
<?php
$fp=fopen("test.txt",r)or exit("khong tim thay file can mo");
echo fgets($fp);
fclose($fp);
?>
$fp=fopen("test.txt",r)or exit("khong tim thay file can mo");
echo fgets($fp);
fclose($fp);
?>
- Đọc file theo từng ký tự:
Cú pháp : fgetc(file vừa mở).
Ví dụ:
<?php
$fp=fopen("test.txt",r)or exit("khong tim thay file can mo");
echo fgetc($fp);
fclose($fp);
?>
$fp=fopen("test.txt",r)or exit("khong tim thay file can mo");
echo fgetc($fp);
fclose($fp);
?>
Quy trình đọc sẽ diễn ra theo từng yêu cầu của cú pháp sử dụng. Nhưng sẽ có sự ràng buộc bởi việc kiểm tra đã đến cuối file chưa ?.
Ở đây chúng ta dùng cú pháp sau: feof(file vừa mở)
Ví dụ:
<?php
$fp=fopen("test.txt",r)or exit("khong tim thay file can mo");
while(!feof($fp))
{
echo fgets($fp);
}
fclose($fp);
?>
$fp=fopen("test.txt",r)or exit("khong tim thay file can mo");
while(!feof($fp))
{
echo fgets($fp);
}
fclose($fp);
?>
b) Ghi 1 file trong PHP
PHP cung cấp cho ta 1 cú pháp nhỏ để ghi dữ liệu vào 1file
Cú pháp cơ bản : fwrite("file vừa mở", "Nội dung cần ghi vào file")
Ví dụ:
<?php
$fp=fopen("test.txt",a)or exit("khong tim thay file can mo");
$news="Trung Tam Tin hoc Viet Chuyenn";
fwrite($fp,$news);
fclose($fp);
$fp=fopen("test.txt",a)or exit("khong tim thay file can mo");
$news="Trung Tam Tin hoc Viet Chuyenn";
fwrite($fp,$news);
fclose($fp);
?>
Tổng kết:
Việc sử dụng file một cách thành thạo sẽ giúp bạn dễ dàng vận hành các ứng dụng mang quy mô vừa và nhỏ như: website nhiều ngôn ngữ, bộ đếm,…và cả những công nghệ web mới như XML một cách dễ dàng. Qua bài học này chúng ta cũng hiểu được nguyên lý hoạt động, trình tự xử lý 1 file dữ liệu khi chúng được triệu gọi trong tài liệu PHP.
Bài tập áp dụng:
Xây dựng bộ đếm cho website, mỗi khi khách truy cập thì sẽ tự động tăng lên 1 giá trị.
Comments
Post a Comment