PHP解压ZIP文件到指定文件夹的方法
本文实例讲述了PHP解压ZIP文件到指定文件夹的方法。分享给大家供大家参考,具体如下:
/** *function:解压zip格式的文件 *author:friker *date:2015-15-14 *reference:http://php.net/manual/zh/ref.zip.php *allrightsreserved:wujiangwei123@126.com */ classUnzip{ publicfunction__construct(){ //initcodehere... header("content-type:text/html;charset=utf8"); } /** *解压文件到指定目录 * *@paramstringzip压缩文件的路径 *@paramstring解压文件的目的路径 *@paramboolean是否以压缩文件的名字创建目标文件夹 *@paramboolean是否重写已经存在的文件 * *@returnboolean返回成功或失败 */ publicfunctionunzip($src_file,$dest_dir=false,$create_zip_name_dir=true,$overwrite=true){ if($zip=zip_open($src_file)){ if($zip){ $splitter=($create_zip_name_dir===true)?".":"/"; if($dest_dir===false){ $dest_dir=substr($src_file,0,strrpos($src_file,$splitter))."/"; } //如果不存在创建目标解压目录 $this->create_dirs($dest_dir); //对每个文件进行解压 while($zip_entry=zip_read($zip)){ //文件不在根目录 $pos_last_slash=strrpos(zip_entry_name($zip_entry),"/"); if($pos_last_slash!==false){ //创建目录在末尾带/ $this->create_dirs($dest_dir.substr(zip_entry_name($zip_entry),0,$pos_last_slash+1)); } //打开包 if(zip_entry_open($zip,$zip_entry,"r")){ //文件名保存在磁盘上 $file_name=$dest_dir.zip_entry_name($zip_entry); //检查文件是否需要重写 if($overwrite===true||$overwrite===false&&!is_file($file_name)){ //读取压缩文件的内容 $fstream=zip_entry_read($zip_entry,zip_entry_filesize($zip_entry)); @file_put_contents($file_name,$fstream); //设置权限 chmod($file_name,0777); echo"save:".$file_name."<br/>"; } //关闭入口 zip_entry_close($zip_entry); } } //关闭压缩包 zip_close($zip); } }else{ returnfalse; } returntrue; } /** *创建目录 */ publicfunctioncreate_dirs($path){ if(!is_dir($path)){ $directory_path=""; $directories=explode("/",$path); array_pop($directories); foreach($directoriesas$directory){ $directory_path.=$directory."/"; if(!is_dir($directory_path)){ mkdir($directory_path); chmod($directory_path,0777); } } } } } /* using: $z=newUnzip(); $z->unzip("./bootstrap-3.3.4.zip",'./unzipres/',true,false); */
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP操作zip文件及压缩技巧总结》、《php文件操作总结》、《php正则表达式用法总结》、《PHP运算与运算符用法总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。