Эквивалентная функция is_file () для URL-адресов?

Как лучше всего проверить, указывает ли данный URL-адрес на действительный файл (т.е. не возвращает 404/301 и т. д.)? У меня есть сценарий, который загружает определенные файлы .js на страницу, но мне нужен способ проверить каждый URL-адрес, который он получает, указывает на действительный файл.

Я все еще копаюсь в руководстве по PHP, чтобы узнать, какие файловые функции (если таковые имеются) действительно работают с удаленными URL-адресами. Я буду редактировать свой пост по мере того, как нахожу больше деталей, но если кто-то уже прошел по этому пути, не стесняйтесь вмешиваться.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
3
0
2 367
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

одним из таких способов было бы запросить URL-адрес и получить ответ с кодом состояния 200, кроме этого, на самом деле нет хорошего способа, потому что сервер имеет возможность обрабатывать запрос, как ему нравится (включая предоставление вам других кодов состояния для файлов, которые существуют, но у вас нет доступа по ряду причин).

Если на вашем сервере не включены обертки fopen (на любом сервере с приличной безопасностью не будет), вам придется использовать CURL функции.

Ответ принят как подходящий

File_get_contents немного выходит за рамки цели, поскольку для принятия решения достаточно иметь заголовок HTTP, поэтому для этого вам нужно использовать curl:

<?php
// create a new cURL resource
$ch = curl_init();

// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_NOBODY, 1);

// grab URL and pass it to the browser
curl_exec($ch);

// close cURL resource, and free up system resources
curl_close($ch);
?>

Другие вопросы по теме