Bonjour à tous,
En ce moment je souhaite récupérer, en php, un fichier compressé par la librairie Zlib, un fichier GZ.
J'arrive très bien à récupérer l'archive par un "copy()" depuis le site externe où il se trouve, par contre, sur une archive de 13 Mo, impossible de décompresser, et de récupérér le contenu, je me retrouve avec une erreur 500.
Je vous montre le code que j'utilise.
Dans un premier temps la copie du fichier externe :
Jusque là, tout se passe niquel, aucun soucis, ensuite, j'essaye d'extraire le contenu de l'archive avec ceci :
Et c'est là que ça plantouille, erreur 500.
Sur une petite archive (1,7 Mo), aucun souci, j'ai bien mon fichier xml qui se crée, mais sur plus gros ça coince.
Existe t'il un moyen d'extraire le fichier en plusieurs partie ? Existe t'il un moyen de découper l'archive en plusieurs morceaux ?
Car je pense vraiment qu'il s'agisse d'un problème de taille de fichier ...
Merci !
Modifié par Super_baloo8 (10 Nov 2008 - 22:56)
En ce moment je souhaite récupérer, en php, un fichier compressé par la librairie Zlib, un fichier GZ.
J'arrive très bien à récupérer l'archive par un "copy()" depuis le site externe où il se trouve, par contre, sur une archive de 13 Mo, impossible de décompresser, et de récupérér le contenu, je me retrouve avec une erreur 500.
Je vous montre le code que j'utilise.
Dans un premier temps la copie du fichier externe :
$fichier_user = "user.gz";
$dir_xml = 'xml/';
$fichier_xml = "-stats-user.xml";
//Rosetta@home
$url_rosetta = "http://boinc.bakerlab.org/rosetta/stats/".$fichier_user;
$url_dest_rosetta = $dir_xml."rosetta_".$fichier_user;
copy($url_rosetta, $url_dest_rosetta);
Jusque là, tout se passe niquel, aucun soucis, ensuite, j'essaye d'extraire le contenu de l'archive avec ceci :
decompression_xml_projet("rosetta", $url_dest_rosetta, $dir_xml);
function decompression_xml_projet($projet, $url_projet_gz, $dir_cache)
{
if(${'gz'.$projet} = gzopen($url_projet_gz, "rb"))
{
while(!gzeof(${'gz'.$projet}))
{
${'text'.$projet}.= gzread(${'gz'.$projet}, 1024);
}
gzclose(${'gz'.$projet});
${'fp'.$projet} = fopen($dir_cache.'/'.$projet.'-stats-user.xml', 'w+');
fwrite(${'fp'.$projet}, ${'text'.$projet});
fclose(${'fp'.$projet});
echo "<p>Copie du fichier <strong>user.gz</strong> terminé</p>";
echo "<p>Création fichier XML <strong>".$projet."</strong> terminé</p>";
}
else
{
echo "<p>Mise à jour <strong>".$projet."</strong> erreur</p>";
}
}
Et c'est là que ça plantouille, erreur 500.
Sur une petite archive (1,7 Mo), aucun souci, j'ai bien mon fichier xml qui se crée, mais sur plus gros ça coince.
Existe t'il un moyen d'extraire le fichier en plusieurs partie ? Existe t'il un moyen de découper l'archive en plusieurs morceaux ?
Car je pense vraiment qu'il s'agisse d'un problème de taille de fichier ...

Merci !
Modifié par Super_baloo8 (10 Nov 2008 - 22:56)