pack

(PHP 3, PHP 4 >= 4.0.0)

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

$binarydata = pack ("nvc*", 0x1234, 0x5678, 65, 66);

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.