Я хотел бы узнать больше о функции pack () в PHP: http://fi.php.net/manual/en/function.pack.php
Я знаю, что он упаковывает данные в двоичные файлы, но я не уверен, что означают все эти V V n N c C, и мне было интересно, может ли кто-то быть добрым и дать мне практическую демонстрацию, когда использовать какие форматы?
На мой взгляд, онлайн-документация, для изменения, отсутствие информации.
Они представляют, как вы хотите, чтобы данные, которые вы упаковываете, представляли в двоичном формате:
так
$bin = pack("v", 1); => 0000000000000001
$bin = pack("v", 1); => 0000000000000001
(16 бит)
где
$bin = pack("V", 1) => 00000000000000000000000000000001
(32 бит)
Он сообщает пакет, как вам нужны данные, представленные в двоичных данных. Этот код продемонстрирует это ниже. Обратите внимание, что вы можете распаковать в другом формате, чем вы упаковали данные.
<?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"; ?>
Как указано в документации php для пакета, функция заимствована из функции пакета Perl.
Взгляните на документацию Perl для пакета , в частности на раздел примеров в самой нижней части страницы. В пакете PHP не реализованы все форматы, но документация Perl для этой функции лучше справляется с предоставлением примеров и объяснением каждого формата.