Можно ли использовать класс ZipArchive в PHP для изменения даты создания или изменения даты файла внутри zip-файла без записи файла на диск и использования касания к нему, а затем снова добавляя файл в zip
Измените созданный атрибут даты в файле в zip-архиве с помощью PHP
Ответы (1)
Нет, это невозможно. Внешние атрибуты не имеют ничего общего со временем изменения файла, которое хранится перед внешними атрибутами. Я просмотрел все библиотеки сжатия в 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