2009-06-12 6 views

Odpowiedz

21

Ci reprezentować jak chcesz dane, które są opakowania mają być reprezentowane w formacie binarnym:

tak

$bin = pack("v", 1); => 0000000000000001 (16bit)

gdzie

$bin = pack("V", 1) => 00000000000000000000000000000001 (32 bit)

Mówi pakietowi w jaki sposób chcesz dane reprezentowane w danych binarnych. Poniższy kod pokaże to. Pamiętaj, że możesz rozpakować pliki w innym formacie niż z tego, do czego zostały spakowane dane.

<?php 

$bin = pack("S", 65535); 
$ray = unpack("S", $bin); 
echo "UNSIGNED SHORT VAL = ", $ray[1], "\n"; 

$bin = pack("S", 65536); 
$ray = unpack("S", $bin); 
echo "OVERFLOW USHORT VAL = ", $ray[1], "\n"; 

$bin = pack("V", 65536); 
$ray = unpack("V", $bin); 
echo "SAME AS ABOVE BUT WITH ULONG VAL = ", $ray[1], "\n"; 
?> 
10

Jak wspomniano w dokumentacji php dla pakietu, funkcja jest zapożyczona z funkcji pakietu Perla.

Spójrz na Perl's documentation for pack, w szczególności sekcję przykładów na samym dole strony. Pakiet PHP nie implementuje wszystkich formatów, ale dokumentacja Perla dla tej funkcji lepiej dostarcza przykłady i objaśnia każdy format.