如果可能,如果在一行上声明

时间:2009-12-30 21:12:37

标签: php conditional-operator language-construct

我正在使用生成的ID打印图像。但是我想检查这个图像是否存在以及它是否打印no-image.jpg而不是......

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

如果可以保持在一条线上,那将是很好的。任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:3)

Kristopher Ives说的是什么,file_exists

echo (file_exists("/path/file/name/here") ? "web/path/goes/here" : "no_image.jpg")
不过,您的代码段不太可能正常工作,因为您似乎将纯HTML输出和PHP结合起来而不将PHP放入<? ?>

答案 1 :(得分:3)

我的建议实际上是从html标签本身抽象决策,在不输出html的单独的php逻辑块中...这里是一个假设你没有使用模板引擎的缩写示例,或者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;?>" />

答案 2 :(得分:2)

哇,这个问题得到了很多的回答:

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

您可以通过以下方式完成:

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