Affichage conditionnel image php 5

Résolu/Fermé
Sebas22 Messages postés 110 Date d'inscription jeudi 13 mai 2010 Statut Membre Dernière intervention 24 juillet 2018 - 20 juin 2011 à 18:09
Sebas22 Messages postés 110 Date d'inscription jeudi 13 mai 2010 Statut Membre Dernière intervention 24 juillet 2018 - 22 juin 2011 à 13:10
Bonjour,
Je débute en php et je cherche à faire quelque chose de simple, mais j'ai un message d'erreur
D'abord le code de ma page contient un include d'un fichier txt (je suis obligé).
Dans ce fichier txt, il y a mes instructions qui visent à vérifier si une image précise figure dans un répertoire et alors de l'afficher ou sinon d'afficher une image transparente (c'est-à-dire pas d'image).
J'ai écrit le code suivant, mais çà cloche :
<?php $filename = '/image_home_4_3/Pic-xxx-331-247.jpg';if (file_exists($filename)) {<img class="imgome" border="0" src="image_home_4_3/Pic-xxx-331-247.jpg" alt="légende" title="xxx">;} else {<img class="imgome" border="0" src="image_home_stamp/Pic-transparence-1-1.gif" alt="légende" title="transparence" width="95%">;}?>

Je me suis demandé si avant "<img class" je devais ajouter @fopen mais cela ne marche pas plus.
Ce petit test pourra intéresser d'autres personnes car il permet, en cas d'oubli, d'éviter l'affichage de l'image brisée dans IE.
Merci de votre aide


A voir également:

2 réponses

Holomark Messages postés 16 Date d'inscription lundi 20 juin 2011 Statut Membre Dernière intervention 21 juin 2011 2
20 juin 2011 à 20:00
Tu mélange le PHP et le HTML,, ça peut pas passer, voici deux versions syntaxiquement correctes de ton code :

<?php
$filename = '/image_home_4_3/Pic-xxx-331-247.jpg';
if (file_exists($filename)) {
echo 'class="imgome" border="0" src="image_home_4_3/Pic-xxx-331-247.jpg" alt="légende" title="xxx">';
} else {
echo '<img class="imgome" border="0" src="image_home_stamp/Pic-transparence-1-1.gif" alt="légende" title="transparence" width="95%">';
}
?>

<?php $filename = '/image_home_4_3/Pic-xxx-331-247.jpg'; ?>
<?php if (file_exists($filename)) : ?>
    <img class="imgome" border="0" src="image_home_4_3/Pic-xxx-331-247.jpg" alt="légende" title="xxx">;    
<?php else : ?>
    <img class="imgome" border="0" src="image_home_stamp/Pic-transparence-1-1.gif" alt="légende" title="transparence" width="95%">        
<?php endif; ?>


Voir cette page de la doc sur la deuxième version de la syntaxe:
https://www.php.net/manual/fr/control-structures.alternative-syntax.php
0
Sebas22 Messages postés 110 Date d'inscription jeudi 13 mai 2010 Statut Membre Dernière intervention 24 juillet 2018 5
22 juin 2011 à 13:10
Bonjour Holomark

Merci beaucoup.
D'abord il y a eu un petit souci, il manquait <img après echo, vite corrigé.
Puis autre chose plus duraille, je m'étais trompé avec un slash inutile dans le filename.
Voici le bon code pour les membres intéressés.

<?php
$filename = 'image_home_4_3/Pic-xxx-331-247.jpg';
if (file_exists($filename)) {
echo '<img class="imgome" border="0" src="image_home_4_3/Pic-xxx-331-247.jpg" alt="légende" title="xxx">';
} else {
echo '<img class="imgome" border="0" src="image_home_stamp/Pic-transparence-1-1.gif" alt="légende" title="transparence" width="95%">';
}
?>
Donc résolu et encore merci pour ton aide
Sebas
0