2015-11-19 36 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