php文件解压

该段代码展示了如何使用PHP的ZipArchive类进行文件解压缩。它首先打开zip文件,然后将内容解压到指定目录,创建所需目录并复制文件。如果解压过程中遇到问题,函数返回false。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   //文件解压
    protected function uzip($filename){
        //解压缩 php自带的解压类
        $zip = new \ZipArchive;
        //要解压的文件
        $zipfile = $filename;
        $res = $zip->open($zipfile);
        if($res!==true){
            return false;
        }
        //要解压到的目录
        $toDir = app()->getRootPath() ."/addons/";
        if(!file_exists($toDir)) {
            mkdir($toDir,755);
        }
        //获取压缩包中的文件数(含目录)
        $docnum = $zip->numFiles;
        $addonname="";
        //遍历压缩包中的文件
        for($i = 0; $i < $docnum; $i++) {
            $statInfo = $zip->statIndex($i);
            if($statInfo['crc'] == 0) {
                if($i==0){
                    if(is_dir($toDir.'/'.substr($statInfo['name'], 0,-1))){
                        return false;
                    }
                    $addonname=substr($statInfo['name'], 0,-1);
                }

                //新建目录
                mkdir($toDir.'/'.substr($statInfo['name'], 0,-1));
            } else {
                //拷贝文件
                copy('zip://'.$zipfile.'#'.$statInfo['name'], $toDir.'/'.$statInfo['name']);
            }
        }
        return $addonname;
    }
04-16 979
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值