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

时间:2014-10-14 16:24:34

标签: php ziparchive

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

1 个答案:

答案 0 :(得分: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