使用 PHP 在 linux 服务器中压缩 ZIP 文件

Compressing ZIP files in a linux server with PHP

我正在尝试为 linux 中的文件夹创建一个 .zip 文件。

首先我去压缩文件夹所在的位置:

shell_exec('cd /var/www/vhosts/website/test/');

test 文件夹中有 testzip 文件夹,应该将其压缩并发送到其他地方:

shell_exec('zip a -r -tzip /var/www/vhosts/website/zip/save/testzip.zip /var/www/vhosts/website/test/testzip');

这应该创建 testzip.zip。不知何故,这不起作用。

有人能帮忙吗?

试试

"zip -a -r ..."

而不是

"zip a -r ..."

--- 编辑 ---

阅读 Mark Adler 的评论,我意识到您正在使用带有 7-zip 参数的 zip

所以...您确定您的 zip 是 link 到 7z 吗?

无论如何,我建议你避免歧义:你的意图是使用 7z,用

明确它
"7z a -r -tzip ..."

如果要调用 zip 可执行文件,请使用正确的 zip 语法。

p.s.: 对不起我的英语不好

这些不是 zip 的选项。你想用 -tzip 要求什么?开头的 a 将创建一个 a.zip。如果您指的是 -a,则 zip 没有 -a 选项。唯一有意义的选项是 -r,递归到子目录。

首先 运行 直接在 shell 命令中解决你得到的错误,然后再尝试使用 shell_exec().