Php : téléchargement de gros fichiers XML

Fermé
miss Ref Messages postés 14 Date d'inscription mercredi 13 octobre 2010 Statut Membre Dernière intervention 5 octobre 2013 - 13 oct. 2010 à 11:59
miss Ref Messages postés 14 Date d'inscription mercredi 13 octobre 2010 Statut Membre Dernière intervention 5 octobre 2013 - 19 oct. 2010 à 12:22
Bonjour,

Je fais des traitement sur des fichier XML distant mais que je télécharge au préalable (je les sauvegarde sur mon serveur)
J'ai un problème avec les gros fichiers (ça peut aller jusqu'à 500Mo)
En même temps j'avoue que j'y vais un peu à la brut en copiant.
Voila mon code:


$url_file =  "http://www.serveurdistant.com/fichier.xml";//fichier distant
$url_local =  "files/fichier.xml";//fichier sur mon serveur

//lecture du fichier distant
$handler = fopen("".$url_file, "r"); 
$contents = ''; 
if($handler) 
while(!feof($handler)) 
$contents .= fread($handler, 8192); 
fclose($handler);

//écriture dans le fichier local  
$handlew = fopen($url_local, "w"); 
fwrite($handlew, $contents); 
fclose($handlew);


A voir également:

2 réponses

avion-f16 Messages postés 19250 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 22 décembre 2024 4 505
13 oct. 2010 à 19:50
Salut.
Essaye avec cURL ou file_get_contents à la place des fonctions fopen, fclose, etc.
0
miss Ref Messages postés 14 Date d'inscription mercredi 13 octobre 2010 Statut Membre Dernière intervention 5 octobre 2013
19 oct. 2010 à 12:22
J'ai essayé avec cURl mais impossible avec un fichier de 500Mo
J'ai l'impression que c'est un problème de timeout:
-j'ai fixé à 3600 le CURLOPT_TIMEOUT et CURLOPT_CONNECTTIMEOUT.
-j'ai ajouté ini_set('max_execution_time', 0) pour un temps d'exécution infini
mais sans aucun effet.
jusqu'à 50Mo ça marche sans problème.
Je continue mes tests et je vous tien s au courant.
0