2009-12-30 8 views
1

J'imprime une image en utilisant un identifiant qui est généré. Cependant, je voulais faire un chèque pour voir si cette image existe et si elle ne marche pas imprimer sans image.jpg à la place ...if instruction sur une ligne si poss

<img src="phpThumb/phpThumb.php?src=../public/images/'.$row["id"].'/th.jpg&w=162" alt="" width="162" /> 

Ce serait bien si cela pouvait être maintenu sur une seule ligne est possible. Toute aide serait appréciée.

Répondre

3

Que dit Kristopher Ives et file_exists:

echo (file_exists("/path/file/name/here") ? "web/path/goes/here" : "no_image.jpg") 

btw, votre extrait est peu susceptible de fonctionner, comme vous semblez t o combiner la sortie HTML pure et PHP sans mettre le PHP en <? ?>

+0

il est enveloppé dans php mais merci pour la note ... – Andy

2

Wow, cette question se demande et a répondu à beaucoup:

http://en.wikipedia.org/wiki/Ternary_operation

Vous pouvez le faire par:

<img src="<?php ($row['id'] != 0) ? "../public/{$row['id']}.jpeg" : 'no_image.jpg'; ?> > 
+0

Je pense qu'il aurait pu demander plus sur la façon de vérifier et voir si l'image était disponible. –

+0

yeh, mais c'était utile aussi :) – Andy

+0

Oh, en effet, j'étais un peu en mode auto hehe –

3

Ma recommandation serait en fait de faire abstraction de la prise de décision à partir de la balise html elle-même, dans un bloc séparé de la logique php qui ne sort pas html ... ici est un exemple abrégé qui suppose que vous n'utilisez pas de moteur de modèle ou de structure MVC.

<?php 
$filename = 'th.jpg'; 
$filePath = '/public/images/' . $row['id'] '/'; 
$webPath = '/images/' . $row['id'] . '/'; 
//Logic to get the row id etc 
if (!file_exists($filePath . $filename)) { 
    $filename ='no-image.jpg'; 
    $webPath = '/images/'; 
} 
?> 
<img src="<?php echo $webpath . $filename;?>" /> 
+0

J'ai oublié d'expliquer pourquoi: P Dans ce cas, il a séparé votre logique d'entreprise de votre logique de présentation, vous permettant de l'abstraire plus tard, si vous utilisez un cadre ou décidez de restructurer votre code, et appelle la logique pour déterminer quel chemin source à utiliser de la logique de l'affichage réel, et maintient le code php entremêlé dans votre HTML à un minimum. –

+0

C'est très détaillé, merci. Je fais cela pour les versions futures et je peux vraiment voir les avantages. Merci encore! – Andy

+0

Très bon point. –