Server : nginx/1.20.1 System : Linux iZ2ze9ojcl78uluczwag69Z 4.18.0-240.22.1.el8_3.x86_64 #1 SMP Thu Apr 8 19:01:30 UTC 2021 x86_64 User : www ( 1000) PHP Version : 7.3.28 Disable Function : passthru,exec,system,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv Directory : /www/wwwroot/0531yanglao.com/extend/phpTools/ |
<?php namespace phpTools; header('content-type:text/html;charset=utf-8'); /** * Class ZipTools * Zip压缩解压工具类 */ class ZipTools{ // 使用示例 // $zip = new ZipArchive(); // $path = $_SERVER['DOCUMENT_ROOT']; // $zipName = $_SERVER['DOCUMENT_ROOT']."/20180826.zip"; // // if($zip->open($zipName, ZipArchive::CREATE) === TRUE){ // addFileToZip($path, $zip); // 调用方法,对要打包的根目录进行操作,并将ZipArchive的对象传递给方法 // $zip->close(); // 关闭处理的zip文件 // } /** * @desc 对相应目录文件进行压缩 * @param $path * @param $zip **/ public static function addFileToZip($path,$zip){ // 转化 \ 为 / ,适应 windows /* $file_tools = new FileTools(); $path = $file_tools->dirPath($path); */ // 判断是不是目录,是的话递归进入 if(is_dir($path)) { $handler = opendir($path); //打开当前文件夹由$path指定。 while (($filename = readdir($handler)) !== false) { if ($filename != "." && $filename != "..") { //文件夹文件名字为'.'和'..',不要对他们进行操作 if (is_dir($path . "/" . $filename)) { // 如果读取的某个对象是文件夹,则递归 $this->addFileToZip($path . "/" . $filename, $zip); } else { //将文件加入zip对象 $zip->addFile($path . "/" . $filename); } } } }else{ $zip->addFile($path); } @closedir($path); echo 'zip压缩成功'; } // php 从zip压缩文件中提取文件 // 使用示例: // $filename = $_SERVER['DOCUMENT_ROOT'].'/unzip.zip'; // $path = $_SERVER['DOCUMENT_ROOT'].'/unzip'; // unZip($filename,$path ); /** * @desc 对相应目录文件进行压缩 * @param $path * @param $zip **/ public static function unZip($filename = '', $path = ''){ //将文件名和路径转成windows系统默认的gb2312编码,否则将会读取不到 $filename = iconv("utf-8","gb2312",$filename); $path = iconv("utf-8","gb2312",$path); if (!file_exists($filename)) { return false; } $zip = new ZipArchive; if ($zip->open($filename) === TRUE) {//中文文件名要使用ANSI编码的文件格式 $zip->extractTo($path);//提取全部文件 $zip->close(); echo 'zip解压成功'; } else { echo 'zip解压失败或没有这个zip文件'; } } }