Подтвердить что ты не робот

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;
4b9b3361

Ответ 1

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

Ответ 3

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;
}

Ответ 4

Включена ли опция, позволяющая использовать внешние URL-адреса? Вы можете установить его в php.ini:

allow_url_fopen = 1

Ответ 5

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

Вы проверили комментарии ниже?

Просто читая его части, но, похоже, есть несколько проблем.

Кэширование может быть проблемой. При открытии FTP-ссылок он всегда возвращает true (говорят в комментариях) ...

Ответ 6

Вам нужно написать путь к файлу, например "file:///C:/Documents%20and%20Settings/xyz/Desktop/clip_image001.jpg".

Ответ 7

Попробуйте ниже. Его работа для меня

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;