scandirglobはunixの隠しファイルを見ることができないため、globの代わりに必要なようです。
<?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()任意の中間値なし