如果存在,我如何在网页上显示图像...否则使用“默认图像”?
Posted
技术标签:
【中文标题】如果存在,我如何在网页上显示图像...否则使用“默认图像”?【英文标题】:How can I display an image on webpage if it exists...else use "default image"? 【发布时间】:2012-01-31 06:06:01 【问题描述】:好的...这是我尝试解决此问题的第三次尝试。希望这次我说得更清楚一点。我有一个包含各种不同图像的文件夹。
文件夹名称为:'../wp-content/gallery/playerphotos/'
文件名传递为:
$photoname = $row['First_Name'] . " " . $row['Last_Name'];
如果匹配文件存在,我想显示照片(“.jpg”)。
如果文件不存在,则使用同一文件夹中的默认照片: '../wp-content/gallery/playerphotos/NoPhotoAvailable.jpg'
我期待听到您的建议。感谢您的宝贵时间。
【问题讨论】:
你可以使用“file_exists”函数php.net/manual/en/function.file-exists.php 【参考方案1】:我有一个更棘手的解决方案。每次您想要提供照片时,无需调用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>
【讨论】:
【参考方案2】:您可以使用以下 PHP 函数来检查文件名(在您的示例中为 $photoname)是否存在:
bool file_exists ( string $filename )
查看以下页面中的文档:
http://www.php.net/manual/en/function.file-exists.php
【讨论】:
我终于弄清楚了问题它与我使用的路径有关。我需要定义一个绝对路径: $absolutepath = $_SERVER'DOCUMENT_ROOT'.'wp-content/gallery/playerphotos/' 。 $照片名。 '.jpg'; file_exists 函数现在可以正常工作。 ;)【参考方案3】:要不要有一个更棘手的解决方案? :)
$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; ?>" />
【讨论】:
我终于弄清楚了问题它与我使用的路径有关。我需要定义一个绝对路径: $absolutepath = $_SERVER'DOCUMENT_ROOT'.'wp-content/gallery/playerphotos/' 。 $照片名。 '.jpg'; file_exists 函数现在可以正常工作。 ;)【参考方案4】:您将要使用 PHP 函数 file_exists,它以一个参数作为文件名。
您将首先要检查该文件是否存在于服务器上。如果没有,则将照片名称设置为默认名称。
if(!file_exists($photoname))
$photoname = '../wp-content/gallery/playerphotos/NoPhotoAvailable.jpg';
【讨论】:
以上是关于如果存在,我如何在网页上显示图像...否则使用“默认图像”?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用Coldfusion fileExist检查Amazon S3上是否存在文件?
即使 url 有效,使用 imgur api 获取损坏的图像