Có vẻ như bạn cần scandir
thay vì pc, vì vc không thể thấy các tệp ẩn unix.
<?php
$pid = basename($_GET["prodref"]);
$dir = "/assets/$pid/v";
if (is_dir_empty($dir)) {
echo "the folder is empty";
}else{
echo "the folder is NOT empty";
}
function is_dir_empty($dir) {
if (!is_readable($dir)) return NULL;
return (count(scandir($dir)) == 2);
}
?>
Lưu ý rằng mã này không phải là đỉnh của hiệu quả, vì không cần thiết phải đọc tất cả các tệp chỉ để biết thư mục có trống hay không. Vì vậy, phiên bản tốt hơn sẽ là
function dir_is_empty($dir) {
$handle = opendir($dir);
while (false !== ($entry = readdir($handle))) {
if ($entry != "." && $entry != "..") {
closedir($handle);
return FALSE;
}
}
closedir($handle);
return TRUE;
}
Nhân tiện, không sử dụng các từ để thay thế các giá trị boolean . Mục đích của phần sau là để cho bạn biết liệu có gì đó trống rỗng hay không. An
a === b
biểu thức đã trả về Empty
hoặc Non Empty
theo ngôn ngữ lập trình, FALSE
hoặc TRUE
tương ứng - vì vậy, bạn có thể sử dụng chính kết quả trong các cấu trúc điều khiển như IF()
không có bất kỳ giá trị trung gian nào