我有以下代码,我想要的是,如果该图像不在服务器中存档,那么显示alt图像...
foreach ($result as $data) {
echo'
<tr style="background-color:#690b06;">
<td id"key" style="font-size:18px; color:#f0cb01;">'.$data["Product #"].'</td>
<td id"bl" style="font-size:18px;color:#f0cb01;"><a target="_blank" href="https://www.google.com/search?q='.$data["Name"].'">'.$data["Name"].'</td>
<td id"bl" style="font-size:18px;color:#f0cb01;">
<img src="http://example.com/search/images/'.$data["Name"].'.jpg" width="75" height="100" class="image">
</td>
<td id"ph" style="font-size:18px;color:#f0cb01;">'.$data["UPC"].'</td>
<td id"ph" style="font-size:18px;color:#f0cb01;">'.$data["Case Pack"].'</td>
<td id"ph" style="font-size:18px;color:#f0cb01;">'.$data["Item Ounces"].'</td>
<td id"reason" style="font-size:18px;color:#f0cb01;">'.$data["Suggested Retail"].'</td>';
}
echo "</tr></table>";
我的文件结构如下 / seach / images /“item of item.jpg”
项目的名称是从数据库中提取的,照片也是带有.jpg ext的名称。有些物品没有图像。它是我的工作的搜索功能,我搜索一个项目,它返回结果......如果可能的话,一些与图片。但有些没有图像,只显示空占位符。
答案 0 :(得分:2)
if(file_exists('/search/images/'.$data["Name"].'.jpg')) {
echo '<img src="http://example.com/search/images/'.$data["Name"].'.jpg" width="75" height="100" class="image">'
} else {
//echo out alt image
}
答案 1 :(得分:2)
如果您的应用可以将网址映射到文件位置,事情会变得更轻松:
<?php
$url_root = 'http://example.com/search/images';
$doc_root = $_SERVER['DOCUMENT_ROOT'].'/search/images';
$default_image = 'http://example.com/images/default.jpg';
foreach ($result as $data) {
$image_url = $default_image;
if (file_exists( $doc_root.'/'.$data['Name'].'.jpg' )) {
$image_url = $url_root.'/'.$data['Name'].'.jpg';
}
// output the image tag
echo '<img src="'.$image_url.'" width="75" height="100" class="image" />';
}
?>
答案 2 :(得分:0)
您可以使用PHP函数file_exists,正如其他人所指出的那样。但请注意,如果您正在谈论存储在其他服务器file_exists
上的图像,即使没有文件存在,有时也会返回肯定的结果。
一种解决方案是使用getimagesize,例如:
$img_arr = @getimagesize($filename);
您需要@
,因为如果文件不存在,getimagesize
将返回错误。然后,您将测试$img_arr
是否实际上是一个数组:
if (is_array($img_arr)) { ... }
getimagesize
将用于存储在远程服务器上的文件。