------
Phần 76. Xử
lý tập tin 1
Đây là clip số 74:
Để kiểm tra một tập tin/thư mục có tồn tại hay không, sử
dụng hàm: file_exists($fileName)
Trong đó $fileName là đường dẫn của tập tin/thư mục cần kiểm
tra, nếu tập tin/thư mục có tồn tại hàm này trả về true, nếu tập tin/thư mục
không tồn tại hàm này trả về giá trị false.
Ví dụ,
$file = 'ThuMuc';
if(file_exists($file)) {
echo 'Tồn tại.';
} else {
echo 'Không tồn tại.';
}
Xem một số thông tin cơ bản của tập tin:
- filetype($fileName): kiểu của tập tin (trả về hai giá trị:
file hoặc dir)
- filesize($fileName): trả về kích thước của tập tin (đơn vị
byte)
Ví dụ sử dụng hàm filesize và đổi dung lượng ra: B, KB, MB,
GB, hoặc TB,
$file = 'ThuMuc/DuLieu.txt';
$size = filesize($file);
function
convertSize($size, $totalDigit = 2, $distance = ' ') {
$units = array('B',
'KB', 'MB', 'GB', 'TB');
$length =
count($units);
for($i = 0; $i <
$length; $i++) {
if ($size >= 1024)
{
$size = $size/1024;
} else {
$unit = $units[$i];
break;
}
}
$result = round($size,
$totalDigit) . $distance . $unit;
return $result;
}
echo convertSize($size);
- is_readable($fileName): kiểm tra xem có quyền đọc $fileName
hay không
- is_writeable($fileName): kiểm tra xem có quyền ghi
$fileName hay không
- is_executable($fileName): kiểm tra xem có quyền thực thi
$fileName hay không
Đây là clip số 75:
Lấy thông tin từ đường dẫn.
- basename($path): trả về tên của tập tin, gồm cả phần mở
rộng, của $path
- basename($path, ‘.txt’): trả về tên của tập tin, không có
phần mở rộng, nếu tập tin là .txt, của $path
- dirname($path): trả về tên thư mục của $path
- pathinfo($path, $options): trả về một mảng chứa các thông
tin (dirname, basename, extension, filename) của $path. Ví dụ,
Array
(
[dirname] => ThuMuc
[basename] =>
DuLieu.txt
[extension] => txt
[filename] => DuLieu
)
- pathinfo($path, PATHINFO_BASENAME): trả về tên tập tin và
phần mở rộng
- pathinfo($path, PATHINFO_EXTENSION): trả về phần mở rộng
- pathinfo($path, PATHINFO_DIRNAME): trả về thư mục
- pathinfo($path, PATHINFO_FILENAME): tên tập tin không có
phần mở rộng
Đọc nội dung của tập tin:
- file($fileName): đọc nội dung tập tin $fileName đưa vào
một mảng, mỗi dòng trong tập tin $fileName tương ứng với một phần tử của mảng.
- file_get_contents($fileName): đọc tập tin $fileName đưa
vào một chuỗi.
Bài tập: đọc tập tin văn bản, thực hiện các thống kê: tổng
số hàng, tổng số khoảng trắng, tổng số từ, tổng số kí tự
[DuLieu.txt]
A strong emphasis in this report is on the core.
of the Web and how selected.
technologies and features amount.
[PHP]
$file = 'ThuMuc/DuLieu.txt';
$data = file($file);
// đếm số hàng
$lines = count($data);
// đếm số từ
$string =
file_get_contents($file);
$words =
str_word_count($string);
// đếm khoảng trắng
$spaces =
substr_count($string, ' ');
// đếm kí tự
preg_match_all('/\S/ismU', $string, $matches);
$chars =
count($matches[0]);
// echo '<pre>';
// print_r($matches);
// echo '</pre>';
echo 'Tổng số hàng: ' .
$lines . '<br>';
echo 'Tổng số từ: ' .
$words . '<br>';
echo 'Tổng số khoảng
trắng: ' . $spaces . '<br>';
echo 'Tổng số kí tự: ' .
$chars . '<br>';
Đây là clip số 76:
Để ghi nội dung vào tập tin sử dụng hàm
file_put_contents($fileName, $data, $mod):
- $data: dữ liệu ghi vào tập tin
- $fileName: tên tập tin
- hàm này sẽ thực hiện tạo tập tin mới nếu chưa có, mở tập
tin, ghi dữ liệu và đóng tập tin
- nếu $mod = FILE_APPEND, nội dung sẽ được ghi nối vào cuối
tập tin
- nếu ghi thành công trả về số kí tự ghi được, nếu thất bại
trả về FALSE
Bài tập, đọc nội dung tập tin và xóa một hàng dữ liệu trong
đó.
$file =
'ThuMuc/DuLieu1.txt';
if (file_exists($file)) {
$arrData = file($file);
unset($arrData[2]);
file_put_contents($file, $arrData);
} else {
echo 'Tập tin không tồn
tại';
}
Để đổi tên tập tin, sử dụng hàm rename($oldName, $newName),
hàm này cho phép thay đổi cả đường dẫn của tập tin. Hàm trả về giá trị
TRUE/FALSE.
Ví dụ,
$file =
'ThuMuc/DuLieu2.txt';
$file1 = 'ThuMuc/DuLieu3.txt';
rename($file,
$file1);
Ví dụ đổi tên và di chuyển tập tin,
$file =
'ThuMuc/DuLieu2.txt';
$file1 =
'DuLieu3.txt';
rename($file,
$file1);
Ví dụ đổi tên thư mục,
$file = 'ThuMuc';
$file1 = 'ThuMuc1';
rename($file,
$file1);
Để sao chép tập tin, sử dụng hàm copy($sourceFile,
$destinationFile). Hàm trả về giá trị TRUE/FALSE.
Ví dụ,
$file =
'ThuMuc\DuLieu.txt';
$file1 =
'ThuMuc\DuLieu1.txt';
copy($file, $file1);
-----------
Cập nhật [16/9/2020]
-----------