Mam pewien problem z pobieraniem xml'a z pewnego serwisu.,
Serwis ten ma limity czasowe na różne rodzaje plików.
Chciałem wykryć, kiedy zwraca mi poprawny plik xml a kiedy komunikat w formie xml'a
Komunikat z informacją o błędzie wygląda tak:
<?xml version="1.0" encoding="UTF-8" ?><gateway><error><code>8</code><message>excessive usage</message></error></gateway>
kod, którym pobieram plik. Niestety funkcja curl_error() nie wykrywa tutaj błędu.
// wykonujemy request $url = 'https://DOMENA/gateway.php'; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data)); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_FILE, $file); #output curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0); $result = curl_exec($curl); $err = curl_error($curl); curl_close($curl); // sprawdzamy odpowiedz if (!$err) { } else { }
Jak mogę rozpoznać, żeskrypt pobrał xml z komunikatem błędu a nie zwykły xml?