pack

funkcja

Pakuje wartości PHP do binarnego stringa według formatki. Używana przy protokołach binarnych i plikach.

pack(string $format, mixed ...$values): string

pack konwertuje wartości PHP na binarny string zgodnie z formatką. Litery formatki określają typ danych: n — 16-bitowy unsigned int big-endian, N — 32-bitowy, V — 32-bitowy little-endian, C — unsigned char, A — string wypełniany spacjami. Funkcja jest niszowa — przydaje się przy implementacji protokołów sieciowych, parsowaniu plików binarnych (BMP, WAV, ZIP) lub interoperacyjności z kodem C.

<?php
declare(strict_types=1);

// 16-bitowy unsigned int big-endian (network byte order)
$bin = pack('n', 1234);
echo bin2hex($bin); // wynik: 04d2

// 32-bitowy unsigned int big-endian
$bin = pack('N', 305419896);
echo bin2hex($bin); // wynik: 12345678

// Wiele wartości naraz
$bin = pack('CCC', 72, 101, 108); // znaki H, e, l
echo $bin;          // wynik: Hel

// Razem z unpack do odczytu
$bin   = pack('nN', 1, 256);
$pola  = unpack('nkrotki/Ndlugi', $bin);
var_dump($pola); // wynik: array(2) { ["krotki"]=> int(1) ["dlugi"]=> int(256) }