试图使用PHP的Zip存档 - 提取到似乎不起作用

时间:2014-06-27 11:14:14

标签: php zip extract ziparchive

希望对此有所帮助。我一直在尝试编写一个PHP脚本解压缩一个使用PHP内置的Zip Archive扩展创建的zip文件。

拉链过程非常简单,但现在我试图将其解压缩到一个特定的文件夹,但它似乎并没有起作用。它唯一能做的就是创建我要求它提取的文件夹。该文件夹中没有文件。

我没有错误消息。

先谢谢。这是我的代码:

<?php

  $root = str_replace('public_html', '', $_SERVER["DOCUMENT_ROOT"]);
  $path = $root.'scripts.zip';

  $zip = new ZipArchive;
  $zipped = $zip->open($path, ZIPARCHIVE::CREATE | ZIPARCHIVE::OVERWRITE);
  $folder = $root.'public_html/scripts/';

  if ($zipped) {

    $extract = $zip->extractTo($folder);

    if ($extract){

      echo 'Zip File Extracted';

    }

    $zip->close();  

  }

?>

1 个答案:

答案 0 :(得分:0)

我会将您的代码修改为如下所示 你正在做的是创建一个新的zip文件,而不是提取旧的。 ZIPARCHIVE::CREATE指示代码创建zip,ZIPARCHIVE::OVERWRITE告诉它覆盖zip中的现有文件。

所以你没有从拉链中提取任何东西。以下代码应该可以使用

 <?php
    $root = str_replace('public_html', '', $_SERVER["DOCUMENT_ROOT"]);
    $path = $root.'scripts.zip';
    $zip = new ZipArchive;
    $zipped = $zip->open($path); /*I have removed the ::CREATE & ::OVERWRITE methods*/
    $folder = $root.'public_html/scripts/';
    if ($zipped) {
       $extract = $zip->extractTo($folder);
       if ($extract){
           echo 'Zip File Extracted';
       }
       $zip->close();
    }
 ?>

希望有所帮助