Phân tích nội dung thư mục trong PHP
Giả sử chúng ta có một thư mục dir,
chứa cả tệp tin lẫn thư mục con bên trong.
Hãy lấy một mảng chứa tên các phần tử từ thư mục này:
<?php
$files = array_diff(scandir('dir'), ['..', '.']);
?>
Hãy kiểm tra xem với mỗi tên, đó là tệp tin hay thư mục:
<?php
$files = array_diff(scandir('dir'), ['..', '.']);
foreach ($files as $file) {
echo $file;
var_dump(is_file('dir/' . $file));
}
?>
Lưu ý rằng tên thư mục mà chúng ta quét, được viết ở hai vị trí trong mã. Điều này không thuận tiện lắm. Hãy tách tên đó ra thành một biến riêng:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
echo $file;
var_dump(is_file($dir. '/' . $file));
}
?>
Bây giờ hãy hiển thị nội dung của tất cả các tệp tin ra màn hình:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
if (is_file($dir. '/' . $file)) {
echo file_get_contents($dir. '/' . $file);
}
}
?>
Có thể nhận thấy rằng đường dẫn đến tệp tin được tính toán hai lần. Hãy tách nó ra thành một biến riêng:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
$path = $dir. '/' . $file; // đường dẫn tới tệp tin
if (is_file($path)) {
echo file_get_contents($path);
}
}
?>
Cho một thư mục. Hiển thị ra màn hình một cột chứa tên các thư mục con từ thư mục này.
Cho một thư mục. Hiển thị ra màn hình một cột chứa tên các tệp tin từ thư mục này.
Cho một thư mục. Ghi vào cuối mỗi tệp tin của thư mục này thời điểm hiện tại.