PHP 和 ZIP 创建:是否可以应用标准 zip "options"



有没有人知道在创建zip文件时如何使用PHP ZIP函数来应用标准的zip">选项"。到目前为止,我所有的搜索都没有发现任何东西。

特别是我对应用"-ll"和">-l"选项感兴趣,这样我就可以从nix网站提供基于压缩文本的文件(cgi和php以及文本文件等(的WIN或NIX版本。内容将被动态压缩,并编辑为每个特定客户添加的一些文件。

我知道构建和使用命令行"back-ticked"(Perl(或"passthru(.("(php( 方法,但我希望有一个技巧可以使用纯 php 来做到这一点,即 ZipArchive((。

问候。

您最终可能会回退到shell_exec并使用本机系统执行zip,然后您可以根据需要传递-ll或-l。 http://php.net/manual/function.shell-exec.php

我认为str_replace((非常明显。但是,这是大文件的内存密集型。

我不会显示所有代码,但 php 有一个很少使用的功能,您可以在其中将"过滤器"应用于流,并且可以将过滤器指定为文件 url 的一部分。它是挂接到某些文件系统操作的好方法,否则这些操作不会让您轻松调整行为。

使用 stream_filter_register(( 定义过滤器后,您应该能够将文件网址(如 php://filter/string.to_unix_line_endings/resource=/path/to/the/file.txt(传递给 ZipArchive::addFile() 方法。

但最终,您也可以创建一个临时文件,并将文件内容以块的形式复制到其中,str_replacing随心所欲,然后将临时文件名传递给ZipArchive::addFile()方法。而且编码起来要容易得多。

最新更新