Как я могу отобразить изображение на веб-странице, если оно существует ... иначе использовать «изображение по умолчанию»? - PullRequest
0 голосов
/ 01 января 2012

хорошо ... это моя третья попытка решить эту проблему.Надеюсь, на этот раз я проясню это немного яснее.У меня есть папка, содержащая различные изображения.

Имя папки: '../wp-content/gallery/playerphotos/'

Имя файла передается как:

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

Если соответствующий файл существует, я хотел бы отобразить фотографию (".jpg").

Если файл не существует, используйте фотографию по умолчанию в той же папке: '../wp-content/gallery/playerphotos/NoPhotoAvailable.jpg'

Я с нетерпением жду ваших предложений.Спасибо за ваше время.

Ответы [ 4 ]

2 голосов
/ 01 января 2012

У меня есть более хитрое решение.Вместо того, чтобы (возможно, с минимальными затратами) вызывать file_exists() каждый раз, когда вы хотите отправить фотографию, просто попросите PHP вывести имя фотографии, как если бы оно существовало (скажем, например: ../wp-content/gallery/playerphotos/Jack Sample.jpg).Затем напишите небольшое правило .htaccess (если вы используете Apache), которое устанавливает для файла 404 для каталога playerphotos значение NoPhotoAvailable.jpg.Если вы не используете Apache, вероятно, есть аналогичные правила, которые вы можете использовать для своего сервера, но преимущество здесь в том, что, хотя он не является переносимым на 100%, он передает проверку наличия файла для программы, оптимизированной дляобслуживать файлы.С Apache вам понадобится такое правило:

<Directory /path/to/www/wp-content/gallery/playerphotos>
    ErrorDocument 404 /wp-content/gallery/NoPhotoAvailable.jpg
</Directory>
1 голос
/ 01 января 2012

Как насчет более хитрого решения?:)

$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; ?>" />
1 голос
/ 01 января 2012

Вы можете использовать следующую функцию PHP, чтобы проверить, существует ли имя файла (в вашем примере, $ photoname):

bool file_exists ( string $filename )

Ознакомьтесь с документацией на следующей странице:

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

0 голосов
/ 01 января 2012

Вы захотите использовать функцию PHP file_exists, которая принимает один аргумент в качестве имени файла.

Вы хотите сначала проверить, существует ли файл на сервере.Если это не так, задайте для имени пользователя имя по умолчанию.

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