Мне нужно увидеть, существует ли конкретное изображение на моем компакт-диске.
Я пробовал следующее, и это не работает:
if (file_exists(http://www.example.com/images/$filename)) {
echo "The file exists";
} else {
echo "The file does not exist";
}
Даже если изображение существует или не существует, всегда отображается сообщение «Файл существует». Я не уверен, почему это не работает ...
file_exists
в удаленном месте будет очень медленным.Ответы:
Вам нужно имя файла в кавычках как минимум (как строка):
Также убедитесь, что
$filename
он правильно проверен. И тогда он будет работать только тогда, когдаallow_url_fopen
он активирован в вашей конфигурации PHP.источник
У меня это не сработало. Я сделал это с помощью getimagesize.
Обратите внимание, что '@' будет означать, что если изображение не существует (в этом случае функция обычно выдает ошибку :),
getimagesize(http://www.mydomain.com/images/filename.png) [function.getimagesize]: failed
она вернет false.источник
@getimagesize('//path/to/image.jpg')
не будет работать).Ну,
file_exists
не говорит, существует ли файл, он говорит, существует ли путь . ⚡⚡⚡⚡⚡⚡⚡Итак, чтобы проверить, является ли это файлом, вы должны использовать
is_file
вместе с,file_exists
чтобы узнать, действительно ли файл находится за путем, иначеfile_exists
вернетсяtrue
для любого существующего пути.источник
Попробуйте вот так:
источник
Вот самый простой способ проверить, существует ли файл:
источник
Сначала вам нужно понять: у вас нет файлов .
Файл является предметом файловой системы , но вы делаете свой запрос, используя протокол HTTP, который не поддерживает файлы, кроме URL-адресов.
Итак, вам нужно запросить несуществующий файл в браузере и увидеть код ответа. если это не 404, вы не можете использовать какие-либо обертки, чтобы узнать, существует ли файл, и вам нужно запросить свой cdn, используя какой-либо другой протокол, например FTP
источник
источник
Если файл находится в вашем локальном домене, вам не нужно указывать полный URL. Только путь к файлу. Если файл находится в другом каталоге, вам нужно указать путь перед знаком "."
Часто "." не указывается, что приведет к отображению файла как несуществующего, хотя на самом деле это так.
источник
Существует большая разница между
is_file
иfile_exists
.is_file
возвращает true для (обычных) файлов:file_exists
возвращает true как для файлов, так и для каталогов:Примечание: проверьте также этот вопрос о переполнении стека для получения дополнительной информации по этой теме.
источник
Вы должны использовать абсолютный путь, чтобы узнать, существует ли файл.
Если вы пишете для CMS или PHP framework, то, насколько мне известно, все они определили константу для корневого пути документа.
например, WordPress использует ABSPATH, который можно использовать глобально для работы с файлами на сервере, используя ваш код, а также URL-адрес сайта.
Пример Wordpress:
Я делаю здесь лишнюю милю :). Поскольку этот код не требует особого обслуживания и довольно надежен, я бы написал его как сокращенное выражение if:
Краткое объяснение оператора IF:
источник
вы можете использовать cURL. Вы можете заставить cURL выдавать только заголовки, но не тело, что может ускорить работу. Плохой домен всегда может занять некоторое время, потому что вы будете ждать тайм-аута запроса; вы, вероятно, можете изменить длину тайм-аута с помощью cURL.
Вот пример:
источник
Вы можете использовать эту
file_get_contents
функцию для доступа к удаленным файлам. См. Http://php.net/manual/en/function.file-get-contents.php для подробностей.источник
Если вы используете curl, вы можете попробовать следующий сценарий:
}
Ссылка URL: https://hungred.com/how-to/php-check-remote-email-url-image-link-exist/
источник
попробуй это :
источник
Если путь к вашему изображению относительно корня приложения, лучше использовать что-то вроде этого:
Пример использования этой функции:
Думаю, неплохо было бы создать что-то вроде библиотеки для проверки существования изображения, применимого в разных ситуациях. Выше множество отличных ответов, которые вы можете использовать для решения этой задачи.
источник
Прочтите первые 5 байтов из HTTP с помощью,
fopen()
аfread()
затем используйте это:для обнаружения изображения.
источник
file_exists
читает не только файлы, но и пути. поэтому, когда$filename
он пуст, команда будет работать так, как если бы она написана так:если каталог / images / существует, функция все равно вернется
true
.Обычно я пишу это так:
источник
file_exists($filepath)
вернет истинный результат для каталога и полного пути к файлу, поэтому это не всегда решение, если имя файла не передано.is_file($filepath)
вернет истину только для полных путей к файламисточник
вам нужен путь к серверу с file_exists
например
источник
У меня работает.
источник