2015-11-19 74 views
0

下面的函數做到了,在壓縮文件夾需要移動到另一個文件夾之後,將壓縮文件夾解壓到一個目錄。PHP歸檔和重命名不能一起工作

正在工作幾次而沒有工作一段時間,工作功能的概率很低。因此,我想尋求你的幫助,優化和建議這個功能應該在任何一種環境下,它都應該獨立於操作系統。

function extractTo(){ 
    //This will extract project directory to fetch installable version of TV APP. 

    $path='../'; 
    $filename = 'xyz-v1.22.zip'; 

    $zipname = $path.$filename; 
    $zip = new ZipArchive; 
    if($zip->open($zipname)) 
    { 
     for($i=0; $i<$zip->numFiles; $i++) 
     {    //echo 'Filename: '.$zip->getNameIndex($i).'<br />'; 
     } 
     if($zip->extractTo('../StadVis/')){ 
      sleep(1); 
      unlink($zipname); 

     }else{ 
      return "not success"; 
     } 
     $zip->close(); 

     //chmod('../StadVis/'.$filename1, 0777); 
     if (rename('../'.$filename,'../versions/'.$filename)) 
     { 
     return "success"; 
     //echo "File Copy"; 
     } 
     else { 
     return "not success"; 
     //echo "File Not Copy"; 

     } 

    } 
    else 
    { 
     return 'Error reading zip-archive!'; 
    } 
} 
+0

不知道爲什麼它不起作用,但你絕對不需要'sleep(1);'。你檢查了[官方文檔](http://php.net/manual/en/ziparchive.extractto.php)嗎? – xaviert

回答

0

1 /使用絕對在你的腳本路徑:

$path=getcwd()."/.."; 

2 /你在../目錄工作,所以更改目錄:

chdir('../'); 

3 /合併溶液1 + 2