PHP速学教程(入门到精通)
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
/* * new creatZip($_dir,$_zipName); *@ _dir是被压缩的文件夹名称,可使用路径,例 'a'或者'a/test.txt'或者'test.txt' *@ _zipName是压缩后的压缩包名称,可使用路径,例 'a/test.zip'或者'test.zip' **/ class creatZip { private $_dir; private $_zipDir; private $_zipName; public function __construct($dir,$zipName) { $this->_dir = $dir; $this->_zipDir = basename($dir); $this->_zipName = $zipName; $this->mkdirs(); $this->creat(); } //检测并生成目录 private function mkdirs() { if (!is_dir(dirname($this->_zipName))) { $arr = explode('/', dirname($this->_zipName)); $arrs = ''; foreach($arr as $value) { if (!is_dir($arrs.$value)) { if (!!mkdir($arrs.$value)) { $arrs .= $value.'/'; } } } } } //生成Zip压缩包 private function creat() { $zip = new ZipArchive; if (is_dir($this->_dir)) { $this->readDir($this->_dir,$files); if ($zip->open($this->_zipName,ZipArchive::CREATE)) { foreach ($files as $value) { preg_match('//('.$this->_zipDir.'/.*)/', $value, $match); if (is_dir($value)) { @$zip->addEmptyDir($value, $match[1]); } else { @$zip->addFile($value, $match[1]); } } $zip->close(); } } else { if ($zip->open($this->_zipName,ZipArchive::CREATE)) { $zip->addFile($this->_dir, basename($this->_dir)); } } } //读取文件夹所有文件 private function readDir($dir,&$arr) { if ($dirs = opendir($dir)) { while (($file=readdir($dirs)) != false) { if ($file == '.' || $file == '..') continue; $files = $dir .'/'. $file; if (is_dir($files) && $this->isEmpty($files)) { $this->readDir($files,$arr); } else { $arr[] = $files; } } } closedir($dirs); } //判断文件夹是否为空 private function isEmpty($dir) { if ($_dirs = opendir($dir)) { while (($file=readdir($dirs)) != false) { if($file != '.' && $file != '..') { closedir($dirs); return true; break; } } closedir($dirs); return false; } } }
以上就介绍了php生成zip压缩文件的方法,支持文件和压缩包路径查找,包括了读取文件方面的内容,更多相关内容请关注php中文网(www.php.cn)!
相关文章:
php免费学习视频:立即学习
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!
已抢7336个
抢已抢95473个
抢已抢14936个
抢已抢52722个
抢已抢195929个
抢已抢87510个
抢