使用 PHP 更改 zip 存档中文件的创建日期属性

问题描述 投票:0回答:2

是否可以使用 PHP 中的 ZipArchive 类来更改 zip 文件内文件的创建日期或修改日期,而无需将文件写入磁盘并对其进行触摸,然后再次将文件添加到 zip 中

php php-ziparchive
2个回答
0
投票

不,这是不可能的。外部属性与文件修改时间无关,文件修改时间存储在外部属性之前。我查看了 PHP 中的所有压缩库,这是不可能的。如果您的目的只是将数据打包到一个文件中,并且易用性不像保存文件属性那么重要,那么我建议您使用 JSON。

我不确定是否有任何软件支持设置文件修改时间,因此您必须更改源代码以支持这样的事情或自己编写代码。我查看了 bzip 源代码(不是 PHP 扩展),它只是从源文件中复制了它。此外,默认的文件修改时间以 DOS 格式存储,只能精确到最近的 2 秒,因此您必须将正确的文件修改时间存储在额外的字段中。 PHP 不支持写入或读取额外字段。

最简单的解决方案是使用你的文件系统。

来源:
维基百科文章:https://en.wikipedia.org/wiki/Zip_%28file_format%29
基本描述:http://www.forensicswiki.org/wiki/ZIP
逆向工程:http://www.sweetscape.com/010editor/templates/files/ZIPTemplate.bt
Bzip:http://www.bzip.org/
PHP 评论:http://php.net/manual/en/ziparchive.statindex.php#118629


0
投票
© www.soinside.com 2019 - 2024. All rights reserved.