Skip to content
Extraits de code Groupes Projets
Valider e756c65e rédigé par Fil's avatar Fil
Parcourir les fichiers

on passe par un fichier temporaire pour dezipper, ca evite les explosions...

on passe par un fichier temporaire pour dezipper, ca evite les explosions memoire, et ca fait un code plus leger
parent 08a33db3
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -257,27 +257,16 @@ function recuperer_lapage($url, $trans=false, $get='GET', $taille_max = 1048576,
return array($headers, $result);
}
// Certaines decompressions gz sont subtiles
// cf. http://fr2.php.net/manual/fr/function.gzinflate.php#77336
// (cas de http://files.spip.org/spip-zone/paquets.xml.gz qui ne pouvait etre recupere)
// http://doc.spip.org/@spip_gzinflate_body
function spip_gzinflate_body($gzData){
// return gzinflate(substr($gzData,10));
if(substr($gzData,0,3)=="\x1f\x8b\x08"){
$i=10;
$flg=ord(substr($gzData,3,1));
if($flg>0){
if($flg&4){
list($xlen)=unpack('v',substr($gzData,$i,2));
$i=$i+2+$xlen;
}
if($flg&8) $i=strpos($gzData,"\0",$i)+1;
if($flg&16) $i=strpos($gzData,"\0",$i)+1;
if($flg&2) $i=$i+2;
}
return gzinflate(substr($gzData,$i,-8));
}
else return false;
// on dezippe via un fichier temporaire
// sinon la memoire explose pour les gros flux
$tmp = _DIR_TMP.md5(uniqid()).'.tmp';
ecrire_fichier($tmp, $gzData);
rename($tmp,$tmp.'.gz');
lire_fichier($tmp.'.gz', $gzData);
supprimer_fichier($tmp.'.gz');
return $gzData;
}
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter