0

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

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

文件名通过如下方式传递:

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

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

如果文件不存在,则使用同一文件夹中的默认照片:'../wp-content/gallery/playerphotos/NoPhotoAvailable.jpg'

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

4

4 回答 4

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>
于 2012-01-01T02:44:27.063 回答
1

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

bool file_exists ( string $filename )

查看以下页面中的文档:

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

于 2012-01-01T00:48:11.433 回答
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; ?>" />
于 2012-01-01T01:02:40.360 回答
0

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

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

if(!file_exists($photoname)) {
    $photoname = '../wp-content/gallery/playerphotos/NoPhotoAvailable.jpg';
}
于 2012-01-01T00:54:35.237 回答