Parece que necesita en scandir
lugar de glob, ya que glob no puede ver los archivos ocultos de 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);
}
?>
Tenga en cuenta que este código no es la cima de la eficiencia, ya que no es necesario leer todos los archivos solo para saber si el directorio está vacío. Entonces, la mejor versión sería
function dir_is_empty($dir) {
$handle = opendir($dir);
while (false !== ($entry = readdir($handle))) {
if ($entry != "." && $entry != "..") {
closedir($handle);
return FALSE;
}
}
closedir($handle);
return TRUE;
}
Por cierto, no use palabras para sustituir valores booleanos . El propósito de este último es decirle si algo está vacío o no. Un
a === b
expresión ya devuelve Empty
o Non Empty
en términos de lenguaje de programación, FALSE
o TRUE
respectivamente, por lo que puede usar el resultado en estructuras de control como IF()
sin valores intermedios