diff options
author | Mario Vavti <mario@mariovavti.com> | 2024-11-09 11:27:53 +0100 |
---|---|---|
committer | Mario Vavti <mario@mariovavti.com> | 2024-11-09 11:27:53 +0100 |
commit | 954d92c354aef93cac7079472c55b53ac4a07d2a (patch) | |
tree | 9ece7278658a82e7f21e71a8cdc7cc13f5d91aed /vendor/maennchen/zipstream-php/src/Zip64/EndOfCentralDirectory.php | |
parent | 8dbebc2b426ac3a27d2476acb6ccc2f353f4212a (diff) | |
parent | 14207c68ca451c365b3fe1f8d267409da39f9498 (diff) | |
download | volse-hubzilla-954d92c354aef93cac7079472c55b53ac4a07d2a.tar.gz volse-hubzilla-954d92c354aef93cac7079472c55b53ac4a07d2a.tar.bz2 volse-hubzilla-954d92c354aef93cac7079472c55b53ac4a07d2a.zip |
Merge branch 'dev' into containers
Diffstat (limited to 'vendor/maennchen/zipstream-php/src/Zip64/EndOfCentralDirectory.php')
-rw-r--r-- | vendor/maennchen/zipstream-php/src/Zip64/EndOfCentralDirectory.php | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/vendor/maennchen/zipstream-php/src/Zip64/EndOfCentralDirectory.php b/vendor/maennchen/zipstream-php/src/Zip64/EndOfCentralDirectory.php new file mode 100644 index 000000000..08588e49c --- /dev/null +++ b/vendor/maennchen/zipstream-php/src/Zip64/EndOfCentralDirectory.php @@ -0,0 +1,43 @@ +<?php + +declare(strict_types=1); + +namespace ZipStream\Zip64; + +use ZipStream\PackField; + +/** + * @internal + */ +abstract class EndOfCentralDirectory +{ + private const SIGNATURE = 0x06064b50; + + public static function generate( + int $versionMadeBy, + int $versionNeededToExtract, + int $numberOfThisDisk, + int $numberOfTheDiskWithCentralDirectoryStart, + int $numberOfCentralDirectoryEntriesOnThisDisk, + int $numberOfCentralDirectoryEntries, + int $sizeOfCentralDirectory, + int $centralDirectoryStartOffsetOnDisk, + string $extensibleDataSector, + ): string { + $recordSize = 44 + strlen($extensibleDataSector); // (length of block - 12) = 44; + + /** @psalm-suppress MixedArgument */ + return PackField::pack( + new PackField(format: 'V', value: static::SIGNATURE), + new PackField(format: 'P', value: $recordSize), + new PackField(format: 'v', value: $versionMadeBy), + new PackField(format: 'v', value: $versionNeededToExtract), + new PackField(format: 'V', value: $numberOfThisDisk), + new PackField(format: 'V', value: $numberOfTheDiskWithCentralDirectoryStart), + new PackField(format: 'P', value: $numberOfCentralDirectoryEntriesOnThisDisk), + new PackField(format: 'P', value: $numberOfCentralDirectoryEntries), + new PackField(format: 'P', value: $sizeOfCentralDirectory), + new PackField(format: 'P', value: $centralDirectoryStartOffsetOnDisk), + ) . $extensibleDataSector; + } +} |