|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Futur Membre du Club
![]() Inscription : juillet 2007 Messages : 81 ![]() |
Bonjour,
Je dois pour une de mes applications télécharger un fichier XML depuis un serveur distant sur mon serveur de production. J'utilise pour ce faire la commande: Code :
exec('wget http://un-site.com/un-fichier.xml'); Mon problème c'est que je dois télécharger un fichier avec une URL dynamique du genre: http://un-site.com/application.php?i...r=334324343423 Avec la commande que j'utilise, je récupère bien le fichier mais celui est tronqué (mauvaise taille et code XML contenant des erreurs). Auriez-vous une solution pour télécharger des fichiers via des urls dynamique? Merci d'avance pour votre aide |
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : septembre 2010 Messages : 7 131 ![]() |
aucun interet a utilise wget, PHP fait ça très bien tout seul, un simple copy suffit
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#3 |
|
Membre actif
![]() Florian Chef de projet NTIC Inscription : novembre 2004 Messages : 205 ![]() |
Si tu souhaites faire un traitement sur ce que contient le fichier, tu peux aussi faire un file_get_contents() qui lui retourne un string avec le contenu du fichier au lieu de le placer sur le disque.
|
|
00
|
|
|
#4 | |
|
Futur Membre du Club
![]() Inscription : juillet 2007 Messages : 81 ![]() |
Merci infiniment stealth35.
![]() Mais pourquoi je me suis embêté avec cette commande... j'ignorais complétement que la fonction copy() marchait aussi avec des fichiers distants. Citation:
Au tout départ j'utilisais justement cette fonction mais j'avais tout de suite un super warning: Limit memory... Voilà déjà un problème de résolu. Il ne m'en reste plus qu'un...arriver à télécharger un fichier XML de 180Mo avec un max_execution_time de 60 secondes... ![]() Ca fera surement l'objet d'un nouveau poste. |
|
|
|
00
|
|
|
#5 | |||
![]() ![]() Développeur Web Inscription : décembre 2006 Messages : 2 335 ![]() |
Citation:
Code :
__________________
Développeur | Zend Certified Engineer Étapes Pour mieux se servir du forum: 1. Commencez par lire les cours et tutoriels ; 2. Faites une recherche; 3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles; Nix>_Rien n'est plus pratique que la théorie |
|||
|
|
00
|
|
|
#6 |
|
Futur Membre du Club
![]() Inscription : juillet 2007 Messages : 81 ![]() |
Quand je saurais tout
En fait je suis quand même obligé de le télécharger à cause de mon max_execution_time Le but est de télécharger un fichier XML référencent des produits d'un e-commerce et de les placer dans ma propre base de données MySQL. Le téléchargement d'un fichier de 20Mo prend déjà plusieurs 10 aines de secondes, du coûps il ne me reste plus assez de temps pour faire plusieurs centaines d' enregistrements dans ma base de données. J'ai donc créé un Cron qui télécharge / met à jour le fichier et un deuxième qui s'occupe de le parser pour ensuite enregistrer les produits dans ma base de données. Si j'essaye de lire mon fameux fichier à distance avec la classe SimpleXML, avant qu'elle puisse l'utiliser il y aura déjà heu le fameux execution_time_limit. Je pense que le seul moyen serait de prendre un serveur dédié pour pouvoir modifier ce fameux réglage... |
|
|
00
|
|
|
#7 |
![]() ![]() Inscription : septembre 2010 Messages : 7 131 ![]() |
si ton fichier XML est gros faut le lire en streaming avec XML Parser, ensuite tu pourra mettre les sous parties avec SimpleXML
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#8 |
|
Futur Membre du Club
![]() Inscription : juillet 2007 Messages : 81 ![]() |
Merci pour l'info.
J'ai quand même de la peine à comprendre. Avant que PHP puisse lire le fichier qui se trouve sur le serveur distant, il faut déjà qu'il le télécharge dans son entièreté? Si c'est le cas le max_execution_time sera déjà dépassé. J'ai trouvé un lien qui pourrait aller dans ton sens si je t'ai bien compris: http://dsampaolo.com/blog/42-parser-...xmlreader.html |
|
|
00
|
|
|
#9 | |
![]() ![]() Inscription : septembre 2010 Messages : 7 131 ![]() |
Citation:
pas en stream, il va le lire séquentiellement
__________________
http://blog.stealth35.com/ |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com