我需要一种方法来下载大量文件并使用PHP将它们保存到文件系统中。这是一个部署工具,我打算使用Zip文件,因为我只是调用一些解压缩代码而且很简单。但是,ZIP功能是一个并非每个人都有的扩展功能。
我现在唯一的另一个想法是将所有内容压缩为一个文件作为Base64编码,解码并将其写回。这不理想(或者是吗?)。建议?
答案 0 :(得分:2)
Zip非常难以解析,如果你可以关注rather simple file format specification并且愿意依靠zlib扩展来安装来处理解压缩。
否则,发明自己的自定义存档文件格式,并不难。这可能是一件非常简单的事情:
因此,一个非常简单的存档文件可能看起来像
00020007foo.txt0000000012Hello world!0007bar.txt0000000010It worked!
您当然可以通过以二进制格式存储长度来改进它(例如,使用带有'N'格式的pack
),添加校验和等等。但这样解释起来更容易。
答案 1 :(得分:0)
base64只是将一大块数据转换为通过电子邮件“安全”传输的格式,然后可以将其解码回其原生8位格式。它不允许将多个文件存档/压缩到单个文件中。您可以在MIME消息中嵌入多个单独的base64编码文件,这样可以允许多个不同的附件。但是你又回到了同样的问题 - 并不是所有东西都会原生地处理MIME消息,因为那是电子邮件的域名。
Zip是您的最佳选择。它的版本可用于阳光下的每个主要操作系统,并且内置于大型2 - MacOS和Windows的文件管理器中。其他选择(rar,7z等)远不那么常见,绝对没有开箱即用支持的机会。