PHP: библиотека CURL: получение статуса curl_exec

Я использую cURL в PHP, чтобы написать функцию, чтобы получить удаленный XML-файл в мою локальную папку. Все работает отлично, но у меня есть вопрос:

$fileIn = curl_init("http://some-remote-host.com/file.xml); $fileOut = fopen('myLocal.xml", "w"); curl_setopt($fileIn, CURLOPT_FILE, $fileOut); curl_setopt($fileIn, CURLOPT_HEADER, 0); $isCopied = curl_exec($fileIn); curl_close($fileIn); fclose($fileOut); if(!$isCopied) return false; else //do something else 

Основываясь на документации, которую я читал, $ isCopied предполагается ложной, когда удаленный файл не существует, и не должно быть myLocal.xml, но мой if(!$isCopied) , похоже, не работает. И это содержание моего myLocal.xml

 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>404 Not Found</title> </head><body> <h1>Not Found</h1> <p>The requested URL something.xml was not found on this server.</p> <hr> <address>Apache Server at somehost.com Port 443</address> </body></html> 

Мой вопрос: как получить логическую переменную, сообщающую мне, когда это удалось, и когда этого не произошло. (означает, что удаленный файл не существует).

Спасибо.

Вы можете использовать

 curl_getinfo($fileIn, CURLINFO_HTTP_CODE); 

чтобы увидеть, какой http-код был возвращен (вы ищете 200).

Попробуй это:

$ isCopied = curl_getinfo ($ fileIn, CURLINFO_HTTP_CODE)! = 404;