![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 138 Pomógł: 0 Dołączył: 7.01.2015 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
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:
kod, którym pobieram plik. Niestety funkcja curl_error() nie wykrywa tutaj błędu.
Jak mogę rozpoznać, żeskrypt pobrał xml z komunikatem błędu a nie zwykły xml? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 558 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
No to sparsuj sobie ten xml wpierw i bedziesz widzial czy ma blad czy nie
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 138 Pomógł: 0 Dołączył: 7.01.2015 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 36 558 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
curl monitoruje naglowki. Jesli stronka nie zwraca bledu w naglowkach tylko zwraca naglowek 200 OK no to sorry, dla curl to jests ok. Sprawdzales w ogole jakie naglowki dostajesz w zwrotce?
Skoro wiec docelowy plik jest bardzo duzy to sprawdzaj poprostu rozmiar zwroconego tekstu i juz |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 532 Pomógł: 24 Dołączył: 15.04.2011 Skąd: Kalisz Ostrzeżenie: (0%) ![]() ![]() |
Ale czekaj... Plik docelowy ma 300MB, ale plik z błędem będzie miał raptem kilka kb. Sprawdź jego rozmiar, jak będzie jakiś dziwny, to załóż, że to błąd i wykonaj akcje.
Jednak tak jak pisze @nospor, albo serwer powinien zwrócić nagłówek w odpowiednik kodzie, albo response serwera powinien być w jakimś innym typie zamiast XML. Albo nawet właśnie XML z treścią błędu, ale razem z nagłówkiem. Poza tym nie przejmuj się wielkością pliku, wbudowany parser XML w PHP jest dość wydajny, powinien bez problemu sobie z tym poradzić - zawsze możesz to zweryfikować czy sparsuje na docelowym serwerze. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.09.2025 - 04:48 |