Current Location: Home> Function Categories> unpack

unpack

Decompress data from binary string
Name:unpack
Category:Miscellaneous
Programming Language:php
One-line Description:Unpack data from a binary string.

Definition and usage

unpack() function unpacks data from a binary string.

Example

Example 1

Unpack data from a binary string:

 <?php
$data = "PHP" ;
print_r ( unpack ( "C*" , $data ) ) ;
?>

Try it yourself

Example 2

Unpacking data:

 <?php
$data = "PHP" ;
print_r ( unpack ( "C*myint" , $data ) ) ;
?>

Try it yourself

Example 3

Unpacking data:

 <?php
$bin = pack ( "c2n2" , 0x1234 , 0x5678 , 65 , 66 ) ;
print_r ( unpack ( "c2chars/n2int" , $bin ) ) ;
?>

Try it yourself

grammar

 unpack ( format , data , offset )
parameter describe
format Required. Specifies the format used when unpacking data.
data Optional. Specifies the binary data to be unpacked.
offset Optional. Specify where to start unpacking. The default is 0.

Possible values ​​for format parameter:

  • a - NUL-padded string
  • A - SPACE-padded string
  • h - Hex string, low nibble in front
  • H - Hex string, high nibble in front
  • c - Signed characters
  • C - Unsigned characters
  • s - signed short integer (always 16 bits, machine byte order)
  • S - Unsigned short integer (always 16 bits, machine byte order)
  • n - Unsigned short integer (always 16-bit, big-endian byte order)
  • v - Unsigned short integer (always 16-bit, little-endian byte order)
  • i - signed integers (machine-related size and byte order)
  • I - Unsigned integers (machine-related size and byte order)
  • l - signed long integer (always 32 bits, machine byte order)
  • L - Unsigned long integer (always 32 bits, machine byte order)
  • N - Unsigned long integer (always 32 bits, big endian byte order)
  • V - Unsigned long integer (always 32 bits, little endian byte order)
  • q - signed long integer (always 64 bits, machine byte order)
  • Q - Unsigned long integer (always 64 bits, machine byte order)
  • J - Unsigned long integer (always 64 bits, big endian byte order)
  • P - Unsigned long integer (always 64 bits, little endian byte order)
  • f - Floating point number (machine-related size and representation)
  • g - floating point number (machine-related size, little-endian byte order)
  • G - Floating point number (machine-related size, big-endian byte order)
  • d - Double precision floating point number (machine-related size and representation)
  • e - Double precision floating point number (machine-related size, little-endian byte order)
  • E - Double precision floating point number (machine-related size, big-endian byte order)
  • x - NUL bytes
  • X - Rewind one byte
  • Z - NUL-padded string
  • @ - NUL-fill to absolute position
Similar Functions
Popular Articles