Jesus · Bible · HTML · CSS · JS · PHP · SVG · Applications

pack

Description

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.

CodeDescription
aNUL-padded string
ASPACE-padded string
csigned char
Cunsigned char
ddouble (machine dependent size and representation)
edouble (machine dependent size, little endian byte order)
Edouble (machine dependent size, big endian byte order)
ffloat (machine dependent size and representation)
gfloat (machine dependent size, little endian byte order)
Gfloat (machine dependent size, big endian byte order)
hHex string, low nibble first
HHex string, high nibble first
isigned integer (machine dependent size and byte order)
Iunsigned integer (machine dependent size and byte order)
Junsigned long long (always 64 bit, big endian byte order)
lsigned long (always 32 bit, machine byte order)
Lunsigned long (always 32 bit, machine byte order)
nunsigned short (always 16 bit, big endian byte order)
Nunsigned long (always 32 bit, big endian byte order)
Punsigned long long (always 64 bit, little endian byte order)
qsigned long long (always 64 bit, machine byte order)
Qunsigned long long (always 64 bit, machine byte order)
ssigned short (always 16 bit, machine byte order)
Sunsigned short (always 16 bit, machine byte order)
vunsigned short (always 16 bit, little endian byte order)
Vunsigned long (always 32 bit, little endian byte order)
xNUL byte
XBack up one byte
ZNUL-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
)
HomeMenu