2010-11-15 11 views
2

Je veux vérifier s'il y a une image sur un dossier de mon serveur. J'ai cette petite fonction en PHP, mais ne fonctionne pas et je ne sais pas pourquoi:PHP - Vérifiez si un fichier existe dans un dossier

$path = 'folder/'.$id; 
function check($path) { 
    if ($handle = opendir($path)) { 
     $array = array(); 
     while (false !== ($file = readdir($handle))) { 
      if ($file != "." && $file != ".." && count > 2) { 
       echo "folder not empty"; 
      } else { 
       echo "folder empty"; 
      } 
     } 
    } 
    closedir($handle); 
} 

Toute aide sera appréciée, merci à l'avance.

+1

Quelle est la variable 'count' (je suppose)? Est-ce que ça change jamais? –

Répondre

3

Il ne fonctionne pas parce que count est à venir de nulle part. Essayez ceci:

$path = 'folder/'.$id; 
function check($path) { 
    $files = glob($path.'/*'); 
    echo empty($files) ? "$path is empty" : "$path is not empty"; 
} 
+0

Vars hors des guillemets ... Peut déboguer une grande partie de votre code;) http://www.pfz.nl/wiki/variabelen-buiten-quotes/ (néerlandais) – dododedodonl

+1

... Qu'est-ce que c'est? – netcoder

+0

Juste essayer de traduire avec google translate ... C'est un article qui explique le (mauvais) comportement de php avec: '" $ chemin est vide "' – dododedodonl

0

Essayez ceci:

$path = 'folder/'.$id; 
function check($path) { 
    if (is_dir($path)) { 
     $contents = scandir($path); 
     if(count($contents) > 2) { 
      echo "folder not empty"; 
     } else { 
      echo "folder empty"; 
     } 
    } 
    closedir($handle); 
} 

Il compte le contenu du chemin. S'il y a plus de deux éléments, alors ce n'est pas vide. Les deux éléments que nous ignorons sont "." et "..".

Questions connexes