Example
Unpack data from a binary string:
html
<?php
$data = "PHP";
print_r(unpack("C*",$data));
?>
Definition and Usage
The unpack() function unpacks data from a binary string.
Syntax
text
unpack(format,data)
Parameter Values
| Parameter | Description |
|---|---|
| format | Required. Specifies the format to use when unpacking data. Possible values: a - NUL-padded string A - SPACE-padded string h - Hex string, low nibble first H - Hex string, high nibble first c - signed char C - unsigned char s - signed short (always 16 bit, machine byte order) S - unsigned short (always 16 bit, machine byte order) n - unsigned short (always 16 bit, big endian byte order) v - unsigned short (always 16 bit, little endian byte order) i - signed integer (machine dependent size and byte order) I - unsigned integer (machine dependent size and byte order) l - signed long (always 32 bit, machine byte order) L - unsigned long (always 32 bit, machine byte order) N - unsigned long (always 32 bit, big endian byte order) V - unsigned long (always 32 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) J - unsigned long long (always 64 bit, big endian byte order) P - unsigned long long (always 64 bit, little 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) 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) x - NUL byte X - Back up one byte Z - NUL-padded string @ - NUL-fill to absolute |
| data | Required. Specifies the binary data to be unpacked |
| offset | Optional. Specifies where to start unpacking from. Default is 0. |
Technical Details
| Return Value: | Returns an array on success, or FALSE on failure. |
|---|---|
| PHP Version: | 4+ |
| Changelog: | PHP 7.2 - float and double now supports both big and small endian.PHP 7.1 - Added the optional offset parameter.PHP 5.5.0 - The following changes were made for Perl compatibility: The "a" code now retains trailing NULL bytes. The "A" code now strips all trailing ASCII whitespace. The "Z" code was added for NULL-padded strings, and removes trailing NULL bytes. |
More Examples
Example
Unpack data:
html
<?php
$data = "PHP";
print_r(unpack("C*myint",$data));
?>
Example
Unpack data:
html
<?php
$bin = pack("c2n2",0x1234,0x5678,65,66);
print_r(unpack("c2chars/n2int",$bin));
?>