Es scheint, dass Sie scandiranstelle von glob benötigen , da glob keine versteckten Unix-Dateien sehen kann.
<?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);
}
?>
Beachten Sie, dass dieser Code nicht der Höhepunkt der Effizienz ist, da nicht alle Dateien gelesen werden müssen, um festzustellen, ob das Verzeichnis leer ist. Die bessere Version wäre also
function dir_is_empty($dir) {
$handle = opendir($dir);
while (false !== ($entry = readdir($handle))) {
if ($entry != "." && $entry != "..") {
closedir($handle);
return FALSE;
}
}
closedir($handle);
return TRUE;
}
Verwenden Sie übrigens keine Wörter, um boolesche Werte zu ersetzen . Der eigentliche Zweck des letzteren ist es, Ihnen zu sagen, ob etwas leer ist oder nicht. Ein
a === b
Ausdruck bereits zurückkehrt Emptyoder Non Emptyin Bezug auf die Programmiersprache, FALSEoder TRUEjeweils - so können Sie die in Kontrollstrukturen sehr ergeben verwenden wie IF()ohne Zwischenwerte