宏哥娱乐网:宏哥娱乐网-我们不生产资源,只做网络资源的搬运工!
当前位置:首页 > 无分类

PHP将文件夹的文件压缩到Zip包里

宏哥 无分类 717

宏哥娱乐网本次为大家分享的是PHP将文件夹的文件压缩到Zip包里


事情的经过是因为我正在写授权系统需要用到Zip相关的函数,因为Zip相关函数是PHP的扩展功能,之前没有了解过,还有太懒了一直拖着,直到今天我才写出来实现相关功能。

以下是代码:

<?php<br></br>/*<br></br> * Cumin云版权所有<br></br> */<br></br><br></br># 将文件夹的文件压缩到文件里<br></br>class Zip<br></br>{<br></br>    /**<br></br>     * 将目标文件夹下的内容压缩到zip中(zip包含文件夹目录)<br></br>     * @param $sourcePath *文件夹路径 例: /home/test<br></br>     * @param $outZipPath *zip文件名(包含路径) 例: /home/zip_file/test.zip<br></br>     * @return string<br></br>     */<br></br>    public static function zipFolder($sourcePath, $outZipPath)<br></br>    {<br></br>        $parentPath = rtrim(substr($sourcePath, 0, strrpos($sourcePath, '/')),"/")."/";<br></br>        $dirName = ltrim(substr($sourcePath, strrpos($sourcePath, '/')),"/");<br></br><br></br>        $sourcePath=$parentPath.'/'.$dirName;//防止传递'folder'文件夹产生bug<br></br><br></br>        $z = new \ZipArchive();<br></br>        $z->open($outZipPath, \ZIPARCHIVE::CREATE);//建立zip文件<br></br>        $z->addEmptyDir($dirName);//建立文件夹<br></br>        folderToZip($sourcePath, $z, strlen("$parentPath/"));<br></br>        $z->close();<br></br>        return $outZipPath;<br></br>    }<br></br><br></br>    public static function folderToZip($folder, &$zipFile, $exclusiveLength)<br></br>    {<br></br>        $handle = opendir($folder);<br></br>        while (false !== $f = readdir($handle)) {<br></br>            if ($f != '.' && $f != '..') {<br></br>                $filePath = "$folder/$f";<br></br>                // 在添加到zip之前从文件路径中删除前缀<br></br>                $localPath = substr($filePath, $exclusiveLength);<br></br>                if (is_file($filePath)) {<br></br>                    $zipFile->addFile($filePath, $localPath);<br></br>                } elseif (is_dir($filePath)) {<br></br>                    // 添加子文件夹<br></br>                    $zipFile->addEmptyDir($localPath);<br></br>                    self::folderToZip($filePath, $zipFile, $exclusiveLength);<br></br>                }<br></br>            }<br></br>        }<br></br>        closedir($handle);<br></br>    }<br></br>}
    协助本站SEO优化一下,谢谢!
    关键词不能为空

免责声明

本站提供的一切软件、教程和内容信息仅为个人学习测试使用,请在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容,不得用于任何商业用途,否则后果自负,请支持购买正版软件!如侵犯到您的权益,请及时与我们联系处理。敬请谅解!

sitemap