Bonjour,

Je cherche à tester la présence de l'image dans le répertoire avant de l'afficher dans le cas contraire un texte de substitution est affiché.

le code

<pre>
    <?php $url = "../imgs/uploads/titres/".$data_bdd['titre_img']); var_dump(file_exists($url)); ?>
</pre>

<p>
    <img src="<?php echo $url; ?>">
</p>

file_exists renvoie false alors que la balise img affiche correctement l'image !?
Mes premières recherches dans la doc et sur différentes pages ne donnent rien pour l'instant.

3 réponses


vavoir
Auteur
Réponse acceptée

EUREKA !

J'ai d'abord pensé à un espace vide avant ou après mais non . J'ai alors cherché une méthode de contournement, faire autrement. J'ai alors l'idée de lister le contenu du répertoire et de le stoker dans un tableau pour ensuite faire les testes. Et c'est là que... Opendir me revoie:

Warning: opendir(../imgs/uploads/titres/): failed to open dir: No such file or directory in views.php on line 3

Je décide donc alors de virer les .../ est là miracle tout marché ^^ Mais ! pour la balise img il convient de conserver le .../. Si des spécialistes des chemins absolus/relatifs peuvent nous éclairer à ce sujet je leur serais reconnaissant.

Salut,
Un truc comme ça devrait fonctionner :

    file_exists(realpath($url))

@pluche

Pierre

vavoir
Auteur

code:

<pre>
    <?php $url = "../imgs/uploads/titres/".$data_bdd['titre_img']; var_dump(file_exists(realpath($url))); ?>
</pre>
<p>
    <img src="<?php echo $url; ?>">
</p>

Retour var_dump: bool(false)
balise img affiche l'image