Đào Tạo PHP & Mysql

Học PHP Online - PHP Framework - Tự Học PHP

Lập Trình PHP Căn Bản

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 :
 

PHP Example

 
Ví dụ:
 

<?php

$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);

?>

 
 
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);

?>

 
 
- Đọ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);

?>

 
 
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);

?>

 

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);

?>

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ị.
 

(Bùi Quốc Huy)
24412
Ghi rõ nguồn từ website QHOnline.Info - Khi bạn phát hành lại thông tin từ website này
Phản hồi của bạn Tiếng Anh Telex VNI VIQR





Dương Văn Quỳnh (13:08 25/02/2010)

Bài tập đếm số người truy cập Website có ứng dụng thực tế . Xin vui lòng cho gợi ý để làm bài nay
Thank.

từ bảo cường (21:43 18/04/2010)

cảm ơn anh ,nó rất hữu ít.

Nam (18:47 17/05/2010)

Đề nghị ban quản trị có lời giải sau mỗi bài tập để chúng tôi tiên theo dõi và thực hành, Xin chân thành cảm ơn!

Tin (21:34 26/05/2010)

//file index.php
<meta charset="utf-8">
<html>
<?php
include ("dem.php");
?>
số lượng truy cập hiện nay là <?php echo $soluong; ?>
</html>

//file dem.php
<meta charset="utf-8">
<?php
$bandau = file("log.txt");
$soluong = $bandau[0];
$soluong ;
$fp = fopen("log.txt");
fwrite ($fp, $soluong);
fclose ($fp);
?>

Vinh Nguyen (22:24 28/05/2010)

Bộ đếm:
Tạo 1 file counter.log (bằng notepad). Cho giá trị bằng 1 chẳng hạng.
<?php
$fp = fopen("counter.log",r);
$str = fgets($fp);
fclose($fp);
$count = (int)$str;
$count ;
$fp = fopen("counter.log",w);
fwrite($fp,$count);
fclose($fp);
echo "luot truy cap:".$count;
?>
Đặt đoạn code đó vào trang index.php, nếu đưa lên host thì set thuôc tính cho file counter.log là 777.

tran quoc du (07:14 05/06/2010)

khi viết code mở file, thì ta co tao file bên ngoài ko, nhưng em làm ko lên được.thanhks

newbie (12:28 11/06/2010)

Sặc sao truy cập mấy chục lần mà nó vẫn là 1.
<?php
$fp = fopen("counter.log",r);
$str = fgets($fp);
fclose($fp);
$count = (int)$str;
$count ;
$fp = fopen("counter.log",w);
fwrite($fp,$count);
fclose($fp);
echo "luot truy cap:".$count;
?>

phan quoc khanh (20:35 26/06/2010)

đây là đáp án của mình
<?php
$dem=0 ;
$fp=fopen("text.txt","r ")or exit("khong tim thay file can mo");
while(!feof($fp))
{
echo fgetc($fp);
$dem ;
}
fwrite($fp,1);
fclose($fp);
echo "<br>so luong truy cap la:".$dem ;
?>

thuy tram (17:58 28/06/2010)

de so luot truy cap tang len thi phai cho bien count tang.
<?php
$fp = fopen("counter.log",r);
$str = fgets($fp);
fclose($fp);
$count = (int)$str;
$count ; // thay vi $count;
$fp = fopen("counter.log",w);
fwrite($fp,$count);
fclose($fp);
echo "luot truy cap:".$count;
?>

Dương Văn Trăm (17:51 21/07/2010)

Cảm ơn! Trang web rất hay.

Doan Manh Hieu (11:39 23/07/2010)

<?php
// Chu y: Khi moi tao ra file count.txt, phai ghi gia tri ban dau vao file nay;
$fp=fopen("count.txt","r");
$tg=fgets($fp);// gan gia tri trong count.txt vao bien trung gian;
fclose($fp);
$tg ; // Tang bien trung gian len 1

$fp=fopen("count.txt","w "); // Xoa het noi dung trong file count.txt;
fwrite($fp,$tg); // Ghi bien trung gian vao count.txt;
fclose($fp);

echo "<br>So lan truy cap: ".$tg;
?>
Copyright 2007-2010 © QHOnline.Info | Powered By QHOnline Version 2.0 - XHTML Valid