PHP og gunzip
HejsaJeg har et script som skal extracte nogle gunzip filer. Dog oplever jeg problemer med dette script - mere om det senere. På Windows og Linux er problemet der ikke - dette kunne være noget med php opsætningen, apache el.lign.
Altså, denne funktion er en del af en klasse:
//Extract the downloaded file
function extract()
{
echo "\n\nExtracting the gunzipped file...";
//Open the downloaded gunzip file
if(!($file = gzopen($this->filename.".u8.gz","r")))
{
die("I/O error! Could not open the downloaded file!");
}
//Open the file we write to
if(!$openfile = fopen($this->filename,'a'))
{
die("Cannot open the file (".$this->filename.")");
}
//Write the data
if(!fwrite($openfile, gzread($file,300000000)))
{
die("Cannot write to file ".$this->filename."");
}
fclose ($openfile);
gzclose ($file);
echo "\n\n\n ".strtoupper($this->filename).".U8.GZ WAS SUCCESSFUL EXTRACTED! \n Filename: ".$this->filename."\n\n";
}
Den virker fint! Dog er problemet at jeg pakker nogle MEGET store filer ud (fra 50 MB til 250 MB). Hvis man betragter denne linie:
if(!fwrite($openfile, gzread($file,300000000)))
Så kan man se at den udpakker hele gunzip filen på en gang - dette er ikke særligt smart når man pakker 50 MB eller 250 MB filer!
Nu er det noget tid siden, men jeg mener jeg havde forsøgt mig at udpakke gunzip filerne "on the fly" - dvs. den tager småbidder og udpakker dem. Dog kunne jeg ikke lige få det til at virke. Er der nogen der har nogle gode forslag/løsninger på problematikken?
//amix