PHP pack() Function

❮ PHP Misc Reference

Example

Pack data into a binary string:

<?php
echo pack("C3",80,72,80);
?>
Try it Yourself »

Definition and Usage

The pack() function packs data into a binary string.


Syntax

pack(format,args+)

Parameter Values

Parameter Description
format Required. Specifies the format to use when packing 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 position
args+ Optional. Specifies one or more arguments to be packed


Technical Details

Return Value: Returns data in a binary string
PHP Version: 4+
Changelog: PHP 7.2 - float and double now supports both big and small endian.
PHP 7.0.15 - The "E", "e", "G", "g" code was added.
PHP 5.6.3 - The "Q", "q", "J", "P" code was added.
PHP 5.5 - The "Z" code was added (holds the same functionality as "a" for Perl compatibility).

More Examples

Example

Pack data into a binary string:

<?php
echo pack("C*",80,72,80);
?>
Try it Yourself »

❮ PHP Misc Reference
Copyright 1999-2023 by Refsnes Data. All Rights Reserved.