Еще одна функция из набора юного (или даже матерого) пэхэпэшника. Гзиппует файл без чтения его полностью в память.
// Gzippes file without reading it into memory.
//
// @source - full path of src file
// @dest - [optional, default ''] full path of destination file. If empty, dest = sourse + '.gz'
// @level - [optional, default 9] compression level
//
// Returns size of gzipped file or FALSE on error.
function gzip_file($source, $dest='', $level=9)
{
if ($dest == '')
$dest = $source.'.gz';
$mode = 'wb'.$level;
$error=false;
if($fp_out = gzopen($dest,$mode))
{
if($fp_in = fopen($source,'rb'))
{
while(!feof($fp_in))
gzwrite($fp_out,fread($fp_in,1024*512));
fclose($fp_in);
}
else
$error = true;
gzclose($fp_out);
}
else
$error = true;
if($error)
return false;
else
return filesize($dest);
}
Оставить комментарий: