Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP更改zip存档中文件的created date属性_Php_Ziparchive - Fatal编程技术网

使用PHP更改zip存档中文件的created date属性

使用PHP更改zip存档中文件的created date属性,php,ziparchive,Php,Ziparchive,是否可以在PHP中使用ZipArchive类更改zip文件中文件的创建日期或修改日期,而无需将文件写入磁盘并使用触摸键,然后再次将文件添加到zip中否,这是不可能的。外部属性与文件修改时间无关,文件修改时间存储在外部属性之前。我看过PHP中的所有压缩库,但这是不可能的。如果您的目的是简单地将数据打包到一个文件中,并且易用性不像保存文件属性那样重要,那么我建议使用JSON 我不确定是否有任何软件支持设置文件修改时间,因此您必须修改源代码以支持这样的事情,或者自己编写代码。我看了bzip源代码(不是

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

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

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

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

资料来源:
维基百科文章:
基本描述:
逆向工程:
Bzip:

PHP注释:

好吧,看看文档,看看是否有这样一个功能,我想说。一个解决方法可能是将zip存档装载到文件系统中,以便以透明的方式访问其内容。这样,您就可以使用正常的文件操作,而无需实际解包/重新打包归档文件。我自己从来没有试过,但它应该能起作用。不过,你必须依靠环境的能力才能做到这一点。我看了文档,我看到的唯一一件事是setExternalAttributesIndex或setExternalAttributesName,但是关于它们的文档非常贫乏,解决方法听起来像是一个巨大的难题,可能会比解压文件并使用触摸读取文件更糟糕。这可能是,这是解决方法的本质。取决于各种因素,例如文件的大小。