Intereting Posts

PHP Curl получить ответ сервера

Возможный дубликат:
Простой способ проверить URL-адрес для 404 в PHP?

Я использую curl для загрузки последовательности PDF-файлов из бэкэнда в PHP. Я не знаю, когда последовательность заканчивается как 1.pdf, 2.pdf …… и т. Д.

Ниже приведен код, который я использую для загрузки pdf:

$url = 'http://<ip>.pdf'; $path = "C:\\test.pdf"; $fp = fopen($path, 'w'); $ch = curl_init($url); curl_setopt($ch, CURLOPT_FILE, $fp); $data = curl_exec($ch); fclose($fp); 

Но как определить, что этот PDF-файл не существует в бэкэнд? Возвращает ли curl какой-либо ответ, когда файл не найден?

Заранее спасибо

 $ch=curl_init("www.example.org/example.pdf"); curl_setopt($ch,CURLOPT_HEADER,0); curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); $result=curl_exec($ch); curl_close($ch); 

с curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); он вернет результат успеха, FALSE при сбое.

с curl_setopt($ch,CURLOPT_RETURNTRANSFER,false); он вернет TRUE при успешном завершении или FALSE при сбое.

Более того, для file not found :

 $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); if($http_code == 404) { /*file not found*/ } 

Просто проверьте код статута ответа HTTP после $data = curl_exec($ch);

 $http_status = curl_getinfo($url, CURLINFO_HTTP_CODE); if($http_status == '404') { //not found, -> file doesnt exist in your backend } 

Больше информации здесь