Extract sub folders of ZIP file in PHP

后端 未结 3 1070
借酒劲吻你
借酒劲吻你 2020-12-11 10:01

I am using a php script to unzip ZIP file. but this script unzip only one level of directories without extracting the sub directories of that file the script:



        
3条回答
  •  离开以前
    2020-12-11 10:48

    This script extracts all files in the zip file recursively. This will extract them into the current directory.

        
    "; //---------------- //UNZIP a zip file //---------------- $zipfilename = "site.zip"; //---------------- function unzip($file){ $zip=zip_open(realpath(".")."/".$file); if(!$zip) {return("Unable to proccess file '{$file}'");} $e=''; while($zip_entry=zip_read($zip)) { $zdir=dirname(zip_entry_name($zip_entry)); $zname=zip_entry_name($zip_entry); if(!zip_entry_open($zip,$zip_entry,"r")) {$e.="Unable to proccess file '{$zname}'";continue;} if(!is_dir($zdir)) mkdirr($zdir,0777); #print "{$zdir} | {$zname} \n"; $zip_fs=zip_entry_filesize($zip_entry); if(empty($zip_fs)) continue; $zz=zip_entry_read($zip_entry,$zip_fs); $z=fopen($zname,"w"); fwrite($z,$zz); fclose($z); zip_entry_close($zip_entry); } zip_close($zip); return($e); } function mkdirr($pn,$mode=null) { if(is_dir($pn)||empty($pn)) return true; $pn=str_replace(array('/', ''),DIRECTORY_SEPARATOR,$pn); if(is_file($pn)) {trigger_error('mkdirr() File exists', E_USER_WARNING);return false;} $next_pathname=substr($pn,0,strrpos($pn,DIRECTORY_SEPARATOR)); if(mkdirr($next_pathname,$mode)) {if(!file_exists($pn)) {return mkdir($pn,$mode);} } return false; } unzip($zipfilename); ?>

提交回复
热议问题