【发布时间】:2014-06-27 11:14:14
【问题描述】:
不胜感激。我一直在尝试编写一个 PHP 脚本来解压缩使用 PHP 的内置 Zip 存档扩展创建的 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();
}
?>
【问题讨论】:
-
您真的要使用
ZIPARCHIVE::CREATE | ZIPARCHIVE::OVERWRITE标志来打开现有的 zip 文件吗? -
嗨,马克,不幸的是我必须这样做。否则 Zip Archive 会将文件视为无效的 zip 文件。此页面的 cmets 对此进行了修复 - www.php.net/manual/en/ziparchive.open.php
-
因为您基本上是在告诉 open 方法炸毁任何已经存在的文件,并创建一个具有该名称的新空 zip 文件...所以它当然会按照您的指示进行操作
-
所以真正的问题应该是为什么当您不使用这些标志时原始文件无法正确打开:它是否首先正确创建。它给出了什么错误?您是否尝试过使用 ZipArchive 类错误代码进行检查?
-
这意味着它没有将您的文件识别为zip文件,表明您最初创建的文件没有创建有效文件
标签: php zip extract ziparchive