[RESOLU] File_exists ne fonctionne pas

Eléphanteau du PHP | 25 Messages

10 janv. 2016, 22:26

Bonsoir,

je souhaite tester si un fichier existe, mais la fonction me renvoi toujours false.
$filename="/web_images/affiche/images1.png";

if (file_exists($filename))
{ echo "existe"; }
else
{ echo "existe pas";}
Vu que j'effectue cela dans une boucle, je lance le reset de stat avec clearstatcache(); après chaque appel de file_exists, mais ça ne change rien.

Voici le programme un peu plus complet si besoin :
foreach($lines as $line_num => $line)
 {
         $filename= "/web_images/affiche/".$line.".jpg";
         if (file_exists($filename))
                 { [i]affiche l'image[/i] }
         else
                {$filename="/web_images/affiche/default.png";}
}
j'ai essayé de debugger en faisant un echo de filename style : echo "#DEBUT#".$filename."#FIN#" ;
il m'affiche correctement le chemin complet.

Le but est d'afficher les images presentes, et sinon afficher l'image par defaut "default.png".
Sauf qu'il m'affiche tout le temps l'image par defaut.

Mammouth du PHP | 2703 Messages

10 janv. 2016, 22:51

il existe vraiment un répertoire web_images à la racine du serveur, et non dans le répertoire de base du site ?
donc plutôt :
$filename="./web_images/affiche/images1.png";
si le script est dans un répertoire qui a un sous répertoire web_images

Eléphanteau du PHP | 25 Messages

10 janv. 2016, 23:03

En effet c'était tout bête merci !

Comme l'image par defaut s'affichait (signifiant que la fonction m'avait retourné false) avec le chemin "/web_images/affiche" je ne me suis pas douté que file_exists ne gérait pas bien ce cas là.