J'utilise CURL et un proxy pour récupérer des fichiers XML, parfois seulement une partie du document XML arrive et échoue lorsque j'essaie de charger/utiliser le xml (simplexml_load_string).PHP CURL - comment savoir si le fichier entier demandé n'a pas été entièrement téléchargé
Je pensais que quelque chose comme ..
if(curl_errno($ch))
{
$error = curl_error($ch);
// handle error
}
attraperions cette erreur sorta via CURL errno ..
CURLE_PARTIAL_FILE (18)
Un transfert de fichiers est plus court ou plus que attendu. Cela se produit lorsque le serveur signale d'abord une taille de transfert attendue , puis délivre des données qui ne correspondent pas à la taille donnée précédemment .
Cependant, cela ne fonctionne pas, je pense que cela pourrait être dû à l'utilisation d'un proxy. Y at-il autre chose que je puisse vérifier? Ma seule pensée maintenant est de faire un preg_match pour le dernier morceau du document XML, mais cela semble moins qu'idéale car je reçois plusieurs types de documents XML et je devrais écrire des contrôles pour chaque type.
Comme une note qui n'a rien à voir avec votre question, vous pouvez réduire votre code comme ceci ' if ($ error = curl_error ($ ch)) {...} '. –
Je fais habituellement ce genre de chose, mais ce morceau de code particulier est copié directement à partir des php docs pour curl_errno donc vous devrez travailler votre OCD sur eux:] – Steffan