PHP zip deleteName删除太多

时间:2011-12-29 13:41:17

标签: php file zip delete-file

这是我原始zip的内容:

  • 管理员/
  • 图像/
  • 包括/
  • 的index.php
  • install.php了
  • 形式/
  • 模板/
  • 上传/
  • 网/

如果我运行此代码:

$zip = new ZipArchive;
    if ($zip->open('update.zip') === TRUE) {

        $zip->deleteName('include/mysql.php');
        $zip->deleteName('install.php');

        $zip->extractTo('./update/');

        $zip->close();

        unlink('./update.zip');

    } else {
        echo 'Fehler';
    }

剩下的文件是:

  • 管理员/
  • 图像/
  • 包括/

删除所有其他内容。知道为什么吗?

1 个答案:

答案 0 :(得分:3)

尝试在deleteName()之后关闭ZIP文件,然后再次打开以提取。

<?php
$zip = new ZipArchive;
if ($zip->open('update.zip') === TRUE) {

    $zip->deleteName('include/mysql.php');
    $zip->deleteName('install.php');
    $zip->close();

    $zip->open('update.zip');
    $zip->extractTo('./update/');
    $zip->close();

    unlink('./update.zip');

} else {
    echo 'Fehler';
}
?>