pack
Description
The pack of Miscellaneous for PHP pack data into binary string.
Syntax
pack(
string $format,
mixed ...$values
): stringParameters
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;
4xVAB