Page 1 sur 1
savoir si un repertoire est vide
Posté : 01 juil. 2005, 09:44
par jujub
Salut j'essaye d'afficher une image en fonction d'une condition .Si le repertoire est vide on afiche telle image et sinon on affiche l'autre....Voici le code
$rep = "var/www/html/monrepertoire";
$lire =readdir($rep);
if(empty($lire))
{
echo"<td><a href='repertoire.php'><img src='icones.gif' alt='Explorateur'></a></td>";
}
else
{
echo"<td><a href='repertoire.php'><img src='icones.gif' alt='Explorateur'></a></td>";
}
merci d'acceder à ma requette

Posté : 01 juil. 2005, 09:48
par Cyrano
Ce que tu ne nous dis pas, c'est ce qui ne fonctionne pas et si tu as ou non un message d'erreur ?
Posté : 01 juil. 2005, 09:55
par jujub
desolé ........ça marche pas....
voilà
Warning: readdir(): supplied argument is not a valid Directory resource in /var/www/html/read.php on line 4
Posté : 01 juil. 2005, 10:11
par mere-teresa
Ce n'est pas un répertoire que la fonction readdir mais un handle (un pointeur). Il te faut donc créer ce pointeur, à l'aide de la fonction opendir() par exemple...
Lis le manuel
<?php
// Notez que !== n'existait pas avant 4.0.0-RC2
if ($handle = opendir('/chemin/vers/fichiers')) {
echo "Directory handle: $handle\n";
echo "Files:\n";
/* Ceci est la façon correcte de traverser un dossier. */
while (false !== ($file = readdir($handle))) {
echo "$file\n";
}
/* Ceci est la MAUVAISE façon de traverser un dossier. */
while ($file = readdir($handle)) {
echo "$file\n";
}
closedir($handle);
}
?>
Description
string readdir ( resource dir_handle )
readdir retourne le nom du fichier suivant dans le dossier identifié par dir_handle . Les noms sont retournés dans l'ordre qu'ils sont enregistrés dans le système de fichiers.
Liste de paramètres
dir_handle
La ressource de dossier ouverte précédemment avec opendir .
Posté : 01 juil. 2005, 10:25
par jujub
if ($handle = opendir('repertoire/monrep')) {
echo "Directory handle: $handle\n";
echo "Files:\n";
/* Ceci est la façon correcte de traverser un dossier. */
if (false !== ($file = readdir($handle))) {
echo "$file\n";
echo"<td><a href='repertoires.php'><img src='icones.gif' alt='Explorateur'></a></td>";
}
else
{
echo"<td><a href='corec/repertoires2.php'><img src='icones.gif' alt='Explorateur'></a></td>";
}
closedir($handle);
}
mais meme le fichier vide il affiche toujours
<td><a href='repertoires.php'><img src='icones/fax-on.gif' alt='Explorateur'></a></td>";
c'est bizarre non?
Posté : 01 juil. 2005, 10:28
par mere-teresa
En ce cas, c'est ton test qui n'est pas bon. Mais j'avoue que je ne sais pas trop.
Réfléchis bien à ce que tu lui demande de tester, et à comment ça se dit en PHP.
Posté : 01 juil. 2005, 10:30
par jujub
lerreur est la suivante
Directory handle: Resource id #2 Files: .
Posté : 01 juil. 2005, 10:36
par smarties
Au passage tu as 2 fichiers (c'est des raccourcis même

) même si ton répertoire est vide :
.
..
. => répertoire courant
.. => répertoire parent
Posté : 01 juil. 2005, 10:40
par jujub
y'a t'il moyen de dégager ces deux répertoire avec php......
Posté : 01 juil. 2005, 10:48
par mere-teresa
y'a t'il moyen de dégager ces deux répertoire avec php......
Si tu suivais mes conseils....
Clique !
http://fr.php.net/manual/fr/function.readdir.php
Posté : 01 juil. 2005, 10:59
par jujub
OK j'avais pas vu le lien.......
Mais c'est bon j'ai trouver :
if ($handle = opendir('rep/monrep')) {
echo "Directory handle: $handle\n";
echo "Files:\n";
$file = readdir($handle);
/* Ceci est la façon correcte de traverser un dossier. */
if (!empty($file)&&$id_file!='.'&&$id_file!='..')
{
//echo "$file\n";
echo"<td><a href='repertoire.php'><img src='icones.gif' alt='Explorateur'></a></td>";
}
else
{
echo"<td><a href='repertoire.php'><img src='icone.gif' alt='Explorateur'></a></td>";
}
closedir($handle);
}
Posté : 12 juil. 2005, 10:33
par jujub
En fait il ne m'affiche plus que l'icone fax off avec le code suivant (l'ancien ne fonctionnait pas en fait)
if ($handle = opendir('/chemin/du/repertoire/'))
{
$file = readdir($handle);
if ($file != "." && $file != "..")
{
echo"<td><a href='fich.php'><img src=oui.gif'></a></td>";
}
else
{
echo"<td><a href='fich.php'><img src=non.gif'></a></td>";
}
closedir($handle);
}
ça fait longtemp que je cherche et pas de réponse Help
