欢迎您来到,码代码-李雷博客        登录  |  注册

PHP利用ZipArchive对网站程序整站打包源代码

更新:2022-03-21 14:12:32
人气:188
来源:本站原创
A+

PHP利用ZipArchive对网站程序所有目录进行整站打包的源代码分享。

function addFileToZip($path, $zip) {
    $handler = opendir($path); //打开当前文件夹由$path指定。
    /*
    循环的读取文件夹下的所有文件和文件夹
    其中$filename = readdir($handler)是每次循环的时候将读取的文件名赋值给$filename,
    为了不陷于死循环,所以还要让$filename !== false。
    一定要用!==,因为如果某个文件名如果叫'0',或者某些被系统认为是代表false,用!=就会停止循环
    */
    while (($filename = readdir($handler)) !== false) {
        if ($filename != "." && $filename != ".."  && $filename != "out_zip" ) {//文件夹文件名字为'.'和‘..’,不要对他们进行操作
            if (is_dir($path . "/" . $filename)) {// 如果读取的某个对象是文件夹,则递归
                addFileToZip($path . "/" . $filename, $zip);
            } else { //将文件加入zip对象
                $zip->addFile($path . "/" . $filename);
            }
        }
    }
    @closedir($path);
}

$action='zip';

if ($action=='zip'){  
    ini_set('memory_limit','512M'); 
    set_time_limit(180); 
    $path_name="out_zip/web_www.zip";//创建压缩包的路径,在addFileToZip中要排除这个目录,不压缩本身
    
    if (file_exists($path_name)){
        unlink($path_name);//删除文件
        fopen($path_name, "w");//创建压缩包(为了清空文件)
    }else{
        fopen($path_name, "w");//创建压缩包
    }
    
    $zip = new ZipArchive();
    if ($zip->open($path_name, ZipArchive::OVERWRITE) === TRUE) {
        //dirname(__FILE__)  当前绝对路径
        addFileToZip("./", $zip); //调用方法,对要打包的根目录进行操作,并将ZipArchive的对象传递给方法
        //$zip->addFile("home.php");//也可以不通过addFileToZip()函数,直接添加文件
        //$zip->addFile("Android/index.php");
        $zip->close(); //关闭处理的zip文件
        echo "压缩包压缩成功";
    }else{
        echo "启动失败";
    }
}


推荐的文章
# 发表我的评论
  /     /  
# 最近评论
暂时还没有评论,要不要说点什么?
网站地图
会员服务
关于我们
QQ:858353007
 
广告服务
加我微信
移动端访问
 
 
Copyright © 2014- 2022 www.mdaima.com All Rights Reserved.
李雷博客,专注PHP经验、PHP教程及PHP源代码开源下载分享的PHP博客!   ICP备案号:京ICP备10202169号