免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3286 | 回复: 2
打印 上一主题 下一主题

[Hive] ZipArchive当文件多时无法压缩,怎样可以解决呢 [复制链接]

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2016-01-01 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-12-21 10:04 |只看该作者 |倒序浏览
我弄了一个打包整个网站的PHP页面,准备备份网站用的

结果发现文件少的时候能正常压缩,文件多的时候就不生效了.

应该不是大小的原因,我试了一下,放一个有700多个文件,总大小是20多M的文件夹进去无法正常压缩
如果只放一个比较大的文件,比如100多M,是可以正常压缩的
而且无论我是否设置
set_time_limit(0);
ini_set('memoryt_limit','-1');
结果都是这样的

这是什么原因呢,怎样解决这个问题呢

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2016-01-01 06:20:00
2 [报告]
发表于 2010-12-21 10:06 |只看该作者
内容如下:

<?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;

?>

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2016-01-01 06:20:00
3 [报告]
发表于 2010-12-21 10:20 |只看该作者
我试了一下,不管里面的目录结构是什么样的,总共508个文件的时候就可以压缩,到509个开始就不行了.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP