ziparchive — изменение атрибута созданной даты для файла в zip-архиве с использованием переполнения стека

Можно ли использовать класс ZipArchive в PHP, чтобы изменить дату создания или дату изменения файла внутри zip-файла, не записывая файл на диск и не касаясь его, а затем снова добавляя файл в zip-файл

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]