Возможный дубликат:
Простой способ проверить 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 }
Больше информации здесь