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";
?>