2014-01-10 8 views
0

Я хочу проверить, существует ли файл, прежде чем использовать его на странице. Из того, что я понимаю, что-то вроде этого должно работать, но ничего не появляется, поэтому я предполагаю, что я не правильно его закодировал.Проверка наличия изображения

<?php 
    $url = get_bloginfo('template_directory'); 
    $page_id = get_queried_object_id();  

     if(file_exists($url . '/images/footerImage' . $page_id . '.png')) { ?> 
      <img class="footerImage" src="<?php echo get_bloginfo('template_directory'); ?>/images/footerImage<?php echo $page_id; ?>.png" /> 
     <?php } ?> 

Я хочу, чтобы это проверить, существует ли файл, и если он создает тег изображения, если ничего не делать. Почему это не показывает никаких изображений? Я знаю, что у меня есть изображения, потому что он работал до того, как я имел оператор if, но создавал сломанное изображение на странице, на которой у меня не было изображения.

+1

Вы проверили значение '$ url'? –

+1

Это было бы намного более эффективным (и, вероятно, менее подверженным ошибкам), если бы вы использовали ссылки файловой системы для своих изображений, а не URL-адреса. –

+1

file_exists ищет файлы на сервере, а не URL-адреса. Есть несколько примеров для поиска, существует ли URL-адрес на странице документа file_exists http://au2.php.net/file_exists –

ответ

1

get_bloginfo('template_directory') Функция возвращает Абсолютный URL. Но вы должны указать относительный путь для того, чтобы проверить наличие файла file_exists()

if(file_exists(TEMPLATEPATH . '/images/footerImage' . $page_id . '.png')) { ?> 
     <img class="footerImage" src="<?php echo get_bloginfo('template_directory'); ?>/images/footerImage<?php echo $page_id; ?>.png" /> 
<?php } ?> 
+1

'get_bloginfo ('template_directory')' return like 'http: //domain.com/upload/.... png', но' file_exists() 'function require'/var/www/html/yourproject/upload/images ... png' –

+0

Я обновил свой ответ, пожалуйста, проверьте –

+0

Я вижу, что вы обновили его сразу после того, как я попросил какой-то код. Спасибо, я понимаю, что однажды, увидев это, я всегда путаюсь с этими ситуациями. Спасибо! – Fogolicious

Смежные вопросы