【问题标题】:Operating with zip file in PHP [closed]在 PHP 中使用 zip 文件操作 [关闭]
【发布时间】:2012-09-27 21:09:33
【问题描述】:

在网络服务器中,我正在下载 zip 并使用以下功能解压缩。

$zip = new ZipArchive;
$res = $zip->open('tip.zip');
if ($res === TRUE) {
    $zip->extractTo("$dest/");
    $zip->close();
} else {
    die('ZIP not supported on this server!');
}

问题是,当我用这个脚本解压缩时,我得到了 zip 内的文件夹(zip 内有文件夹)。但是,我需要获取 zip 子文件夹中的文件和文件夹,而不是文件夹本身。

换句话说

所以我需要:

  • 执行某些函数,例如 moveRecursively("$username-$reponame-$node", $destination);其中 $destination 是根目录,然后删除此文件夹
  • 或以某种方式执行此操作,同时将子文件夹内容解压缩并直接解压缩到脚本所在的文件夹(在我的情况下为 public_html)

想不出解决办法。请帮忙。

【问题讨论】:

    标签: php recursion zip move unzip


    【解决方案1】:

    这应该是显而易见的。

    将该文件夹的名称传递给您的脚本(在 zip 文件的名称旁边),然后将该文件夹内的所有文件(在您提取它们之后)移动到所需的目的地:

    $zip = new ZipArchive;
    $res = $zip->open('tip.zip');
    if ($res !== TRUE) {
        die('ZIP not supported on this server!');
    }
    
    $zip->extractTo("$dest/");
    $zip->close();
    rename("$dest/dirname/", "$dest/");
    

    【讨论】:

    • 你能重命名这样的完整路径吗???你不觉得它应该是复制吗???
    • @Baba:是的,您可以,请参阅php.net/rename 并尝试您自己的。
    • 不错的rename — Renames a file or directory +1
    • 快速了解这是否意味着aaa/bbb/ccc/a.doc 可以是aaa/xxx/ccc/b.doc ??
    猜你喜欢
    • 1970-01-01
    • 2011-08-04
    • 2011-03-07
    • 2021-01-07
    • 2023-04-03
    • 2022-11-11
    • 2012-09-15
    • 2022-01-12
    • 2021-02-02
    相关资源
    最近更新 更多