如果存在,我如何在网页上显示图像...否则使用“默认图像”?

时间:2012-01-01 00:44:32

标签: php webpage file-exists

好的......这是我尝试解决这个问题的第三次尝试。希望这次我更清楚一点。我有一个包含各种不同图像的文件夹。

文件夹名称为:'../ wp-content / gallery / playerphotos /'

文件名传递为:

$photoname = $row['First_Name'] . " " . $row['Last_Name'];

如果匹配文件存在,我想显示照片(“.jpg”)。

如果文件不存在,请使用同一文件夹中的默认照片:     '../可湿性粉剂内容/画廊/ playerphotos / NoPhotoAvailable.jpg'

我期待听到您的建议。谢谢你的时间。

4 个答案:

答案 0 :(得分:2)

我有一个棘手的解决方案。每次想要提供照片时,不要让({可能是最小的)调用file_exists()的开销,只需让PHP输出照片名称,就像它存在一样(比如说:../wp-content/gallery/playerphotos/Jack Sample.jpg)。然后编写一个小的.htaccess规则(如果你使用的是Apache),它将playerphotos目录的404文件设置为NoPhotoAvailable.jpg。如果您没有使用Apache,可能会有类似的规则可用于您的服务器,但这里的优点是虽然它不是100%可移植的,但它还是要检查文件是否存在于优化到的程序中提供文件。使用apache,您需要这样的规则:

<Directory /path/to/www/wp-content/gallery/playerphotos>
    ErrorDocument 404 /wp-content/gallery/NoPhotoAvailable.jpg
</Directory>

答案 1 :(得分:1)

您可以使用以下PHP函数来检查文件名(在您的示例中为$ photoname)是否存在:

bool file_exists ( string $filename )

查看以下页面中的文档:

http://www.php.net/manual/en/function.file-exists.php

答案 2 :(得分:1)

一个更棘手的解决方案怎么样? :)

$photoname = (file_exists($row['First_Name']." ".$row['Last_Name']))?($row['First_Name']." ".$row['Last_Name']):("../wp-content/gallery/playerphotos/NoPhotoAvailable.jpg")

然后您只需添加图片标记

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

答案 3 :(得分:0)

您将要使用PHP函数file_exists,它将一个参数作为文件名。

您将首先要检查服务器上是否存在该文件。如果没有,则将光子名称设置为默认名称。

if(!file_exists($photoname)) {
    $photoname = '../wp-content/gallery/playerphotos/NoPhotoAvailable.jpg';
}