如何压缩文件夹然后将其解压缩到其他位置?

时间:2009-09-08 07:45:27

标签: php zip

我正在开发一个网站,用于下载用户从我们的其他服务器上传的文件夹,但首先我们必须压缩该文件夹 - 如何压缩整个文件夹的内容?

1 个答案:

答案 0 :(得分:2)

查看ZipArchive的文档。如果您遇到特殊问题,请编辑您的问题,我会尽量提供帮助。您可能没有安装ZipArchive - 如果没有,请按照installation instructions

您需要的功能:

  • open:打开zip存档(您需要使用标记ZIPARCHIVE::CREATE)。
  • addEmptyDir:在zip存档中创建一个可以添加文件的空目录。
  • addFile:将文件系统上的文件添加到存档中。您可能希望通过调用此函数来运行您希望添加文件的文件夹。
  • close:写完邮件后关闭zip存档。
  • extractTo:从zip存档中取出文件将它们放在某处

示例代码:

<?php

$writezip = new ZipArchive;
if ($writezip->open('test.zip') === TRUE) {
    if($zip->addEmptyDir('newDirectory')) {
        $writezip->addFile('/path/to/index.txt', 'newDirectory/newname.txt');
        $writezip->close();
        echo 'ok';
    }
    else {
        echo 'failed to create directory';
    }
}
else {
    echo 'failed';
}

$readzip = new ZipArchive;
if ($readzip->open('test.zip') === TRUE) {
    $readzip->extractTo('/my/destination/dir/');
    $readzip->close();
    echo 'ok';
}
else {
    echo 'failed';
}
?>