//$src_file为文件路径,上传文件返回压缩包路径即可html' target='_blank'>public function unzip($src_file, $dest_dir=false, $create_zip_name_dir=true, $overwrite=true){ $filePath_arr = []; 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{ return false; return $filePath_arr; //返回压缩后所有文件路径 * 创建目录 public function create_dirs($path){ if (!is_dir($path)){ $directory_path = $directories = explode( / ,$path); array_pop($directories); foreach($directories as $directory){ $directory_path .= $directory. / if (!is_dir($directory_path)){ mkdir($directory_path); chmod($directory_path, 0777); }
相关文章推荐:
php如何创建文件目录?(纯代码)
php如何来实现返回json数据(代码)
以上就是PHP如何实现解压压缩包文件到指定目录?(纯代码)的详细内容,PHP教程
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。
新闻热点
疑难解答