-3

在网络服务器内部,我正在下载 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)

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

4

1 回答 1

2

这应该是显而易见的。

将该文件夹的名称传递给您的脚本(在 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/");
于 2012-10-07T10:10:44.413 回答