Как проверить, существует ли файл из URL-адреса

Мне нужно проверить, существует ли конкретный файл на удаленном сервере. Использование is_file() и file_exists() не работает. Любые идеи, как это сделать быстро и легко?

вы должны использовать CURL

 function is_url_exist($url){ $ch = curl_init($url); curl_setopt($ch, CURLOPT_NOBODY, true); curl_exec($ch); $code = curl_getinfo($ch, CURLINFO_HTTP_CODE); if($code == 200){ $status = true; }else{ $status = false; } curl_close($ch); return $status; } 

Вам не нужно CURL для этого … Слишком много накладных расходов, просто хочу проверить, существует ли файл или нет …

Использовать PHP get_header .

 $headers=get_headers($url); 

Затем проверьте, есть ли $ result [0] 200 OK (это означает, что файл есть)

Функция проверки работоспособности URL-адреса может быть такой:

 function UR_exists($url){ $headers=get_headers($url); return stripos($headers[0],"200 OK")?true:false; } /* You can test a URL like this (sample) */ if(UR_exists("http://www.amazingjokes.com/")) echo "This page exists"; else echo "This page does not exist"; 

Я только что нашел это решение:

 if(@getimagesize($remoteImageURL)){ //image exists! }else{ //image does not exist. } 

Источник: http://www.dreamincode.net/forums/topic/11197-checking-if-file-exists-on-remote-server/

Привет, согласно нашему тесту между двумя разными серверами, результаты выглядят следующим образом:

с использованием curl для проверки 10 .png файлов (каждый около 5 мб) был в среднем 5,7 секунд. используя проверку заголовка для того же самого дела, потребовалось в среднем 7,8 секунды!

Таким образом, в нашем тестовом скручивании было намного быстрее, если вам нужно проверить большие файлы!

наша функция завитка:

 function remote_file_exists($url){ $ch = curl_init($url); curl_setopt($ch, CURLOPT_NOBODY, true); curl_exec($ch); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if( $httpCode == 200 ){return true;} return false; } 

вот наш образец проверки заголовка:

 function UR_exists($url){ $headers=get_headers($url); return stripos($headers[0],"200 OK")?true:false; } 

Сделайте запрос с завихрением и посмотрите, возвращает ли он код статуса 404. Выполняйте запрос с использованием метода запроса HEAD, чтобы он возвращал заголовки без тела.