Server IP : 103.191.208.50 / Your IP : 216.73.216.53 Web Server : LiteSpeed System : Linux orion.herosite.pro 4.18.0-553.53.1.lve.el8.x86_64 #1 SMP Wed May 28 17:01:02 UTC 2025 x86_64 User : celkcksm ( 1031) PHP Version : 7.4.33 Disable Function : show_source, system, shell_exec, passthru, popen, exec MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0755) : /home/celkcksm/cms.ncriptech.com/vendor/maennchen/zipstream-php/src/ |
[ Home ] | [ C0mmand ] | [ Upload File ] |
---|
<?php declare(strict_types=1); namespace ZipStream; use RuntimeException; /** * @internal * TODO: Make class readonly when requiring PHP 8.2 exclusively */ class PackField { public const MAX_V = 0xFFFFFFFF; public const MAX_v = 0xFFFF; public function __construct( public readonly string $format, public readonly int|string $value ) { } /** * Create a format string and argument list for pack(), then call * pack() and return the result. */ public static function pack(self ...$fields): string { $fmt = array_reduce($fields, function (string $acc, self $field) { return $acc . $field->format; }, ''); $args = array_map(function (self $field) { switch($field->format) { case 'V': if ($field->value > self::MAX_V) { throw new RuntimeException(print_r($field->value, true) . ' is larger than 32 bits'); } break; case 'v': if ($field->value > self::MAX_v) { throw new RuntimeException(print_r($field->value, true) . ' is larger than 16 bits'); } break; case 'P': break; default: break; } return $field->value; }, $fields); return pack($fmt, ...$args); } }