PHP, если файл изображения не существует, показать другое изображение - PullRequest
0 голосов
/ 03 ноября 2011

Мне было интересно, сможет ли кто-нибудь помочь мне с этим сценарием PHP, который я использую для слайд-шоу Jquery Nivo.Сценарий получает имена файлов из текстового файла и отображает их в соответствии со страницей, на которой вы находитесь через нумерацию страниц.

Есть ли способ для сценария отобразить другое изображение, если файл не существует?Например, если image1.jpg не существует в каталоге images / work /, вместо него будет отображаться изображение unavailable.jpg?

Сценарий:

 <?php
 echo"

<div class='slider-wrapper theme-custom'>
<div id='slider' class='nivoSlider'>";
$photos=file("photos.txt");
foreach($photos as $image){
$item=explode("|",$image);
if($item[0]==$fields[0]){
$photo=trim($item[1]);
echo"<img src='images/work/$photo' alt='' />\n";
}
}
echo"
</div>
</div>
"?>

Ответы [ 3 ]

4 голосов
/ 03 ноября 2011
foreach ($photos as $image) {
    ... explode
    ... trim
    if (!is_readable($your_document_root . '/images/work/$photo)) {
       $photo = 'default.jpg'; // if the required photo isn't there, change to default image
    }
    echo blah blah blah
}

Обратите внимание, что я использовал is_readable () - некоторые люди могут предложить использовать file_exists(), но это может привести к ложному срабатыванию: файл может существовать,но все еще не может быть прочитано из-за проблем с разрешениями.is_readable () объединяет оба и возвращает true, только если файл существует И может быть получен веб-сервером.

1 голос
/ 03 ноября 2011

Вам нужно file_exists();

Возвращает логическое значение.Используйте его в операторе if.При условии, что у вас есть соответствующие разрешения для доступа к изображениям.

1 голос
/ 03 ноября 2011

Вы можете использовать file_exists(), если он находится на вашем сервере. Он принимает путь к файлу в качестве аргумента, а не URL.

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

...