PHP file_exists () не будет работать для меня?

По какой-то причине этот 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; 

Solutions Collecting From Web of "PHP file_exists () не будет работать для меня?"

file_exists () должен использовать путь к файлу на жестком диске, а не URL-адрес. Поэтому у вас должно быть что-то большее:

 $thumb_name = $_SERVER['DOCUMENT_ROOT'] . 'images/userphoto/1/2/2/59874a886a0356abc1_thumb9.jpg'; if(file_exists($thumb_name)) { some_code } 

http://us2.php.net/file_exists

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;