Файл PHP 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;
7 ответов
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-адрес. См. список поддерживаемых протоколов / оболочек для списка, какие обертки поддерживают
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;