提问者:小点点

用PHP将zip和内容解压缩到文件夹中


我正在尝试用php解压一个文件,但是我遇到了目录问题,如果我有一个名为test.zip的zip文件夹,它会用这种方式解压

test.zip
  -> test
    -> content 1
    -> content 2
    -> content 3/
       -> content inside content 3

但是我想用这种方式解压缩

test.zip
  -> content 1
  -> content 2
  -> content 3/
     -> content inside content 3

我用了ZipArchive库也没用

$zip = new ZipArchive;
if ($zip->open($directoryName . '/test.zip') === TRUE) {
$zip->extractTo($directoryName);
$zip->close();

共1个答案

匿名用户

如果您正在解压缩当前文件夹中的ZIP文件,则在解压缩后移动文件夹内容并删除文件夹:

shell_exec("mv ./test/* ./ && rm -R test");

不应该是,但是如果文件夹在root中

shell_exec("mv /test/* / && rm -R /test");

请尝试以下操作:

$zip = new ZipArchive;
if ($zip->open($directoryName . '/test.zip') === TRUE) {
$zip->extractTo($directoryName);
$zip->close();

shell_exec("mv $directoryName/test/* $directoryName/ && rm -R $directoryName/test");