Может ли кто-нибудь объяснить мне функцию pack () в PHP?

Я хотел бы узнать больше о функции 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 для этой функции лучше справляется с предоставлением примеров и объяснением каждого формата.