似乎你需要而不是glob,因为glob看不到unix隐藏文件。scandir
<?php
$pid = basename($_GET["prodref"]); //let's sanitize it a bit
$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()