2010-10-28 18 views
0

Une petite question concernant le téléchargement de fichiers XML à partir d'un serveur distant. J'utilise curl pour y parvenir.Est-il possible de ne télécharger qu'une partie d'un fichier binaire?

Les informations dont j'ai besoin dans ces fichiers xml se trouvent dans les deux premières lignes de code. Maintenant, ma question est:

Est-il possible de télécharger seulement une partie (ou une quantité définie d'octets) de ces fichiers xml, donc je n'ai que les 30 premières lignes (disons). Ces fichiers xml ont une taille comprise entre 100 kb et 12 mb, donc vous comprenez qu'il serait plus efficace de minimiser la bande passante de la requête curl (je parle de 1000 fichiers xml par jour au moins).

Merci

+0

Voir http://stackoverflow.com/questions/985455/curl-how-to-limit-size-of-get – GWW

+0

Notez qu'un fichier XML partiel sera XML non valide et que vous ne pourrez pas l'analyser en utilisant un analyseur XML. –

+0

Sera utiliser mon propre analyseur, donc ce ne sera pas un problème –

Répondre

0

Découvrez le --range option for cURL, qui vous permet de le faire.

Pour HTTP, cela nécessitera le serveur distant pour honorer HTTP/1.1 Range requests - par exemple, si vous spécifiez une plage -r0-10 puis l'en-tête suivant sera transmis

Range: bytes=0-10 

Si le serveur ne veut pas honorer cela, il va retourner le fichier entier.

+0

merci! Je vais vérifier cela. –

+0

Cela peut ne pas fonctionner si le serveur auquel vous vous connectez ne prend pas en charge l'indicateur CURLOPT_RANGE. – GWW

+0

Si tel est le cas, existe-t-il une solution à ce problème? –