ZipArchive当文件多时无法压缩,怎样可以解决呢
我弄了一个打包整个网站的PHP页面,准备备份网站用的结果发现文件少的时候能正常压缩,文件多的时候就不生效了.
应该不是大小的原因,我试了一下,放一个有700多个文件,总大小是20多M的文件夹进去无法正常压缩
如果只放一个比较大的文件,比如100多M,是可以正常压缩的
而且无论我是否设置
set_time_limit(0);
ini_set('memoryt_limit','-1');
结果都是这样的
这是什么原因呢,怎样解决这个问题呢 内容如下:
<?php
//set_time_limit(0);
//ini_set('memoryt_limit','-1');
$todaytime = date("Y-m-d",time());
$path = ".";
$zipfile = "webbak__".$todaytime.".zip";
$zipPath = "..";
$zip = new ZipArchive;
if (file_exists($zipPath."/".$zipfile))
{
echo "已存在一个以当天日期命名的备份文件,备份中止";
exit();
}
if ($zip->open($zipPath."/".$zipfile, ZipArchive::OVERWRITE) === TRUE)
{
addFileToZip($path, $zip);
}
$zip->close();
function addFileToZip($path, $zip)
{
$handler = opendir($path);
while( ($filename = readdir($handler)) !== false )
{
if($filename != "." && $filename != "..")
{
if(is_dir($path."/".$filename)&&$path!=".")
{
addFileToZip($path."/".$filename, $zip);
}
elseif(is_dir($path."/".$filename))
{
addFileToZip($filename, $zip);
}
elseif($path==".")
{
$zip->addFile($filename);
}
else
{
$zip->addFile($path."/".$filename);
}
}
}
@closedir($path);
}
echo "备份完成,备份文件名为 ".$zipfile;
?> 我试了一下,不管里面的目录结构是什么样的,总共508个文件的时候就可以压缩,到509个开始就不行了.
页:
[1]