2008-10-30 3 views
3

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

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

ответ

5

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

<?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); 
?> 
0

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

0

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

Смежные вопросы