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) }