pack

pack -- Sbalí data do binárního řetězce.

Popis

string pack ( string format [, mixed args])

Sbalí předané argumenty do binárního řetězce podle argumentu format . Vrací binární řetězec obsahující předaná data .

Nápad na tuto funkci byl převzat z Perlu , a všechny formátovací kódy fungují stejně jako tam , nicméně , některé formátovací kódy chybí , jako například Perlovský formátovací kód " u " . Formátovací řetězec sestává z formátovacích kódu následovaných volitelným opakovacím argumentem . Opakovací argument může být buď celočíselná hodnota , nebo * pro opakování do konce vstupních dat . U a , A , h , H počet opakování určuje , kolik znaků se vezme z jednoho datového argumentu , u @ je to absolutní pozice , kde se mají umístit další data , u všeho ostatního počet opakování určuje , kolik datových argumentů se spotřebuje a sbalí do výsledného binárního řetězce . V současnosti jsou implementovány

Příklad 1 . pack( ) formátovací řetězec




Výsledný binární řetězec bude 6 bytů dlouhý , a bude obsahovat bytovou sekvenci 0x12 , 0x34 , 0x78 , 0x56 , 0x41 , 0x42 .



Všimněte si , že rozdíl mezi hodnotami se znaménkem a bez znaménka ovlivňuje pouze funkci unpack( ) , zatímco funkce pack( ) dává stejný výsledek pro formátovací kódy se znaménkem i bez znaménka .

Dále si všimněte , že PHP interně ukládá celočíselné hodnoty jako hodnoty se znaménkem o velikosti závislé na systému . Pokud zadáte hodnotu bez znaménka , která bude příliš velká , než aby se dala takto uložit , převede se na double , což často vytváří nežádoucí výsledky .