По какой-то причине этот PHP-код ниже не будет работать, я не могу понять это.
Это очень странно, file_exists, похоже, не видит, что изображение действительно существует, я проверил, чтобы убедиться, что хороший путь к файлу вставлен в функцию file_exists, и он все еще действует вверх
Если я изменю file_exists на! File_exists, он вернет изображения, которые существуют, и те, которые не существуют
define('SITE_PATH2', 'http://localhost/'); $noimg = SITE_PATH2. 'images/userphoto/noimagesmall.jpg'; $thumb_name = 'http://localhost/images/userphoto/1/2/2/59874a886a0356abc1_thumb9.jpg'; if (file_exists($thumb_name)) { $img_name = $thumb_name; }else{ $img_name = $noimg; } echo $img_name;
file_exists () должен использовать путь к файлу на жестком диске, а не URL-адрес. Поэтому у вас должно быть что-то большее:
$thumb_name = $_SERVER['DOCUMENT_ROOT'] . 'images/userphoto/1/2/2/59874a886a0356abc1_thumb9.jpg'; if(file_exists($thumb_name)) { some_code }
docs говорят:
Начиная с PHP 5.0.0, эта функция также может использоваться с некоторыми обертками URL. См. Список поддерживаемых протоколов / Wrappers для списка, в которых обертки поддерживают семейство функций
stat()
.
file_exists
работает только в локальной файловой системе.
Поэтому попробуйте это, если вы используете localhost :
$thumb_name = 'images/userphoto/1/2/2/59874a886a0356abc1_thumb9.jpg'; if (file_exists($_SERVER['DOCUMENT_ROOT'].$thumb_name)) { $img_name = SITE_PATH2.$thumb_name; } else { $img_name = $noimg; }
Включили ли вы параметр, который позволяет использовать внешние URL-адреса? Вы можете установить его в php.ini:
allow_url_fopen = 1
http://php.net/manual/en/function.file-exists.php
вы проверили комментарии ниже?
Просто читая его части, но, похоже, есть несколько вопросов.
Кэширование может быть проблемой. При открытии FTP-ссылок он всегда возвращает true (говорят в комментариях) …
Вы должны написать путь к файлу, например "file:///C:/Documents%20and%20Settings/xyz/Desktop/clip_image001.jpg"
.
Попробуйте ниже. Его работа для меня
define('SITE_PATH2', 'http://localhost/'); $noimg = SITE_PATH2. 'images/userphoto/noimagesmall.jpg'; $thumb_name = 'http://localhost/images/userphoto/1/2/2/59874a886a0356abc1_thumb9.jpg'; if ($fileopen = @fopen($thumb_name)) { $img_name = $thumb_name; fclose($fileopen); }else{ $img_name = $noimg; } echo $img_name;