Please enable JavaScript.
Coggle requires JavaScript to display documents.
Bài 8: XỬ LÝ TẬP TIN VÀ THƯ MỤC (1.Tập tin (Đọc tập tin (Kiểm tra kết…
Bài 8: XỬ LÝ
TẬP TIN VÀ THƯ MỤC
1.Tập tin
Mở tập tin
Cú pháp:
fopen(tên_file, filemode)
Tham số đầu tiên chứa tên của file cần mở và tham số thứ hai chứa chế độ mở file (file mode)
Chú ý: khi mở file bằng fopen() thì tất cả nội dung trong file sẽ được gắn vào biến có tên là $f
Ví dụ: mở file hoa.txt trong thư mục
trien_khai_ung_dung/du_lieu với chế độ chỉ đọc.
<?php
$f = fopen("trien_khai_ung_dung/du_lieu/hoa.txt","r");
?>
Kết hợp kiểm tra file khi mở:
<?php
// mở file nếu file hợp lệ, ngược lại thì thông báo lỗi
$f = fopen("hoa.txt", "r") or exit ("Không thể mở file!");
?>
Phân loại các chế độ mở file:
r: chỉ đọc file. Bắt đầu từ đầu file
r+: đọc và ghi. 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 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: 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.
a+: ghi và đọc dữ liệu. Mở và ghi nội dung vào đầu 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 file. Tạo ra một file mới. Nếu file đã tồn tại, trả về giá trị FALSE và thông báo lỗi.
Đọc tập tin
Kiểm tra kết thúc tập tin
feof() (end of file)
Kiểm tra trạng thái cuối file
Sử dụng hàm này rất hữu hiệu cho việc đọc dữ liệu trong file khi không biết chiều dài cụ thể của file.
Kết quả trả về là TRUE nếu con trỏ ở cuối file.
Cú pháp: feof($f)
Tham số $f là biến khai báo ở hàm fopen().
Chú ý: không thể đọc file khi mở file bằng chế độ w, a và x
Ví dụ: kiểm tra kết thúc file
<?php
if(feof($f)){
echo "Đã kết thúc file";
}
?>
Duyệt và đọc từng dòng nội dung trong tập tin
fgets() được dùng để đọc từng dòng nội dung trong file, có kết quả trả về là một chuỗi có chiều dài lên đến <độ_dài>-1 (độ dài có đơn vị tính là byte), nếu không quy định <độ_dài> thì hàm này sẽ tự thiết lập độ dài mặc định là 1024 byte.
Cú pháp:
fgets($f [, int độ_dài])
Tham số $f là biến khai báo ở hàm fopen()
Ví dụ: Đọc và in toàn bộ nội dung
trong tập tin hoa.txt theo từng dòng
<?php
$f = fopen ("hoa.txt", "r") or exit ("không mở được file này");
while(!feo($f)){
$noi_dung = fgets($f);
echo $noi_dung."<br>";
}
fcloase($f);
?>
Duyệt và đọc từng
ký tự trong tập tin
fgetc(): đọc từng ký tự đơn trong file.
Chú ý: sau khi gọi hàm này thì con trỏ sẽ
di chuyển tới ký tự tiếp theo trong file.
Cú pháp: fgetc($f)
Tham số $f là biến khai
báo trong hàm fopen()
Ví dụ: Đọc và in toàn bộ nội dung
trong tập tin hoa.txt theo từng ký tự
<?php
$f = open ("hoa.txt", "r") or exit ("không mở được file này");
while(!feof($f)){
$noi_dung = fgetc($f);
echo $noi_dung;
}
fclose($f);
?>
Đọc toàn bộ nội dung của tập tin
readfile(): đọc toàn bộ nội dung có trong file và hiển thị.
Kết quả trả về của hàm là số byte của file nếu đọc file thành công, ngược lại trả về kết quả FALSE.
Cú pháp: readfile(“đường dẫn và tên của file”)
Ghi tập tin
Ghi nội dung của file
Cú pháp: fwrite(“đường dẫn và tên của file”, nội_dung [, độ_dài]);
Chú ý: độ dài là tham số tùy chọn: quy định số byte tối đa được ghi vào file của nội dung.
<?php
$noi_dung = "Ghi nội dung vào tập tin";
// thực hiện việc mở và ghi file
$f = fopen ("$ten_file", "a");
fwrite($f, $noi_dung);
fclose($f);
?>
Trước ghi khi chuỗi vào cuối file 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: 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
Đóng tập tin
fclose()
fclose() đóng tập tin đã mở
Kết quả trả về là TRUE nếu đóng được file,
ngược lại kết quả trả về là FALSE
Cú pháp: fclose($f);
Tham số $f là biến đã khai báo ở hàm fopen().
Các hàm xử lý tập tin
Kiểm tra file tồn tại
file_exists()
Cú pháp:
file_exists(“đường dẫn tập tin hoặc thư mục”)
Kết quả trả về của hàm là TRUE nếu file tồn
tại, ngược lại thì kết quả trả về là FALSE
Ví dụ: Kiểm tra sự tồn tại của file,
đọc và in nội dung khi file tồn tại
<?php
$file = "du_lieu/khach_hang.txt";
if(!file_exists($file)){
echo "không có file này!";
exit;
}else{
echo readfile(file);
echo "<br> Đọc file thành công";
}
?>
Lấy kích thước tập tin
filesize()
Cú pháp:
filesize(“đường dẫn tập tin”)
Kết quả trả về là kích thước của file (byte)
nếu thành công, ngược lại thì trả về FALSE.
Ví dụ: Kích thước của tập tin
hoa.txt trong thư mực du_lieu
<?php
echo filesize ("du_lieu/hoa.txt");
->2104 byte
?>
Xóa tập tin
Cú pháp:
unlink(“đường dẫn tập tin”)
Kết quả trả về:
-TRUE nếu xóa file thành công
-FALSE nếu không xóa được file
Ví dụ: xóa tập tin san_pham.txt
<?php
$file = "du_lieu/san_pham.txt";
if(!unlink($file))
{
echo "không xóa được file: $file";
}
else
{
echo"Đã xóa file: $file";
}
?>
Kiểm tra tập tin
Cú pháp:
is_file(“đường dẫn tập tin”)
Kết quả trả về:
-true: nếu đường dẫn tập tin tồn tại
-false: nếu đường dẫn tập tin không tồn tại
<?php
echo is_file("du_lieu/hoa.txt");
->1:TRUE
?>
2.Upload file
Giới thiệu
Trong các ứng dụng web, nhu cầu upload file khá cần thiết => đối tượng FileField được sử dụng giúp người dùng có thể upload file lên web server
Các bước upload file
Bước 1: Tạo form upload file
<form action="upload_file.php" method="post" enctype="multipart/form-data">
<label for="file">Tên file:</label>
<input type="file" name="file_upload" id="file" />
<br/>
<input type="submit" value="upload file" name="submit" />
</form>
Bước 2: Viết code để thực hiện việc upload file
<?php
//kiểm tra file được upload có hợp lệ hay không
...
//nếu hợp lệ: dùng hàm move_upload_file để di chuyển file upload vào thư mục định sẵn là thư mục upload
move_upload_file($_FILES["file_upload"]["tmp_name"],"upload/".$_FILES["file_upload"]["name"]);
?>
Lấy thông tin file
Sử dụng $_FILES
-$_FILES[“filefield”][“name”] – tên file
-$_FILES[“filefield”][“type”] – kiểu của file
-$_FILES[“filefield”][“size”] – kích cỡ của file
-$_FILES[“filefield”][“tmp_name”] – tên tạm của file
-$_FILES[“filefield”][“error”] – lỗi của file
3.Thư mục
Mở thư mục
Kết quả trả về là nguồn (chứa các thư mục và tập tin) của thư mục nếu thư mục mở thành công, ngược lại kết quả sẽ trả về là FALSE.
Cú pháp: opendir(“đường dẫn và tên thư mục”);
Ví dụ: mở thư mục du_lieu
<?php
$dir = opendir("du_lieu");
?>
Duyệt thư mục
Duyệt thư mục bằng cách dùng vòng lặp while kết hợp với hàm readdir()
Cú pháp: readdir(“đường dẫn thư mục”)
Kết quả trả về của hàm là tên file hoặc thư mục trong thư mục được duyệt nếu đọc thành công. Ngược lại, kết quả trả về là FALSE
Ví dụ: Mở và duyệt thư mục du_lieu
<?php
$dir = opendir("du_lieu");
while(($file = readdir($dir)) !== false){
echo $file."\t";
}
closedir($dir);
?>
-> chi_tiet_don_hang.txt
hoa.txt
Đóng thư mục
Cú pháp:
closedir(“đường dẫn thư mục”);
Ví dụ: đóng
thư mục du_lieu
<?php
closedir("du_lieu");
?>
Tạo thư mục
Cú pháp:
mkdir(“tên thư mục”);
Kết quả trả về: là TRUE nếu tạo thư mục thành công, ngược lại kết quả trả về là FALSE.
Ví dụ: Tạo thư mục du_lieu
<?php
mkdir("du_lieu");
->1:TRUE
?>
Kiểm tra đường dẫn thư mục
Cú pháp:
is_dir(“đường dẫn và tên thư mục”);
Kết quả trả về: là TRUE nếu như thư mục tồn tại và là thư mục, ngược lại kết quả trả về là FALSE.
Ví dụ: Kiểm tra sự tồn tại của thư mục du_lieu
<?php
echo is_dir("du_lieu");
->1: TRUE
?>