I would like to know more about the pack()
function in PHP: https://secure.php.net/manual/en/function.pack.php
I know it packs data into binary, but I'm not sure what all those v V n N c C
mean and I was wondering if someone could be so kind as to give me a practical demonstration when to use which formats?
The online documentation, for a change, lacks of information, in my opinion.
The pack() function is an inbuilt function in PHP which is used to pack the given parameter into a binary string in a given format. Syntax: pack( $format, $arguments )
The pack() function packs data into a binary string.
Those represent how you want the data you are packing to be represented in binary format:
so
$bin = pack("v", 1); => 0000000000000001
(16bit)
where
$bin = pack("V", 1) => 00000000000000000000000000000001
(32 bit)
It tells pack how you want the data represented in the binary data. The code below will demonstrate this. Note that you can unpack with a different format from what you packed the data as.
<?php $bin = pack("S", 65535); $ray = unpack("S", $bin); echo "UNSIGNED SHORT VAL = ", $ray[1], "\n"; $bin = pack("S", 65536); $ray = unpack("S", $bin); echo "OVERFLOW USHORT VAL = ", $ray[1], "\n"; $bin = pack("V", 65536); $ray = unpack("V", $bin); echo "SAME AS ABOVE BUT WITH ULONG VAL = ", $ray[1], "\n"; ?>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With