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程序设计有所帮助。