pack
Description
The pack of Miscellaneous for PHP pack data into binary string.
Syntax
pack( string $format, mixed ...$values ): string
Parameters
format
The format string consists of format codes followed by an optional repeater argument. The repeater argument can be either an integer value or * for repeating to the end of the input data. For a, A, h, H the repeat count specifies how many characters of one data argument are taken, for @ it is the absolute position where to put the next data, for everything else the repeat count specifies how many data arguments are consumed and packed into the resulting binary string.
Code | Description |
---|---|
a | NUL-padded string |
A | SPACE-padded string |
c | signed char |
C | unsigned char |
d | double (machine dependent size and representation) |
e | double (machine dependent size, little endian byte order) |
E | double (machine dependent size, big endian byte order) |
f | float (machine dependent size and representation) |
g | float (machine dependent size, little endian byte order) |
G | float (machine dependent size, big endian byte order) |
h | Hex string, low nibble first |
H | Hex string, high nibble first |
i | signed integer (machine dependent size and byte order) |
I | unsigned integer (machine dependent size and byte order) |
J | unsigned long long (always 64 bit, big endian byte order) |
l | signed long (always 32 bit, machine byte order) |
L | unsigned long (always 32 bit, machine byte order) |
n | unsigned short (always 16 bit, big endian byte order) |
N | unsigned long (always 32 bit, big endian byte order) |
P | unsigned long long (always 64 bit, little endian byte order) |
q | signed long long (always 64 bit, machine byte order) |
Q | unsigned long long (always 64 bit, machine byte order) |
s | signed short (always 16 bit, machine byte order) |
S | unsigned short (always 16 bit, machine byte order) |
v | unsigned short (always 16 bit, little endian byte order) |
V | unsigned long (always 32 bit, little endian byte order) |
x | NUL byte |
X | Back up one byte |
Z | NUL-padded string |
@ | NUL-fill to absolute position |
values
Return
Returns a binary string containing data.
Examples
1 · format values
<? $format = "nvc*"; $values1 = 0x1234; $values2 = 0x5678; $values3 = 65; $values4 = 66; $return = pack($format, $values1, $values2, $values3, $values4); echo $return . PHP_EOL; $unpack = unpack("c6", $return); print_r($unpack);
4xVAB Array ( [1] => 18 [2] => 52 [3] => 120 [4] => 86 [5] => 65 [6] => 66 )
2 · format values
<? $format = "nvc*"; $values1 = 0x1234; $values2 = 0x5678; $values3 = 65; $values4 = 66; $return = pack($format, $values1, $values2, $values3, $values4); echo $return . PHP_EOL; $unpack = unpack("H12", $return); print_r($unpack);
4xVAB Array ( [1] => 123478564142 )