似乎您需要scandir
而不是glob,因为glob无法看到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);
}
?>
请注意,这段代码并不是效率的最高峰,因为不必读取所有文件即可知道目录是否为空。因此,更好的版本是
function dir_is_empty($dir) {
$handle = opendir($dir);
while (false !== ($entry = readdir($handle))) {
if ($entry != "." && $entry != "..") {
closedir($handle);
return FALSE;
}
}
closedir($handle);
return TRUE;
}
顺便说一句,不要使用单词来代替布尔值。后者的目的是告诉您是否有空。一个
a === b
表达式已经返回Empty
或Non Empty
使用编程语言,FALSE
或者TRUE
分别返回了-因此,您可以在IF()
没有任何中间值的控件结构中使用该结果