Parece que necesita en scandirlugar 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 Emptyo Non Emptyen términos de lenguaje de programación, FALSEo TRUErespectivamente, por lo que puede usar el resultado en estructuras de control como IF()sin valores intermedios