Warning: include() [function.include]: URL file-access is disabled in the server configuration in /usr/home/virtwww/w_altcode-ru_ffd5b838/http/php/ssm/php_strbin.php on line 23

Warning: include(http://altcode.ru/include/style.php) [function.include]: failed to open stream: no suitable wrapper could be found in /usr/home/virtwww/w_altcode-ru_ffd5b838/http/php/ssm/php_strbin.php on line 23

Warning: include() [function.include]: Failed opening 'http://altcode.ru/include/style.php' for inclusion (include_path='.:') in /usr/home/virtwww/w_altcode-ru_ffd5b838/http/php/ssm/php_strbin.php on line 23

ALTCODE

Программирование - ALTCODE.ru   Все о языках программирования.

Assembler |  C  |  C++ |  Visual C++ |  C++ Builder |  C# |  Pascal |  Delphi |  BASIC |  Visual Basic |  Visual Basic .NET 
Java |  Perl |  Visual FoxPro |  Ruby |  PHP |  MySQL 
 Главная / PHP / Справочник по PHP (краткий)
Главная
Карта сайта
Наши партнеры
Контакты

<< предыдущая | в начало | следующая >>



Строковые функции : Работа с бинарными данными

pack
Пакетирование данных в двоичную строку.

Синтаксис :
string pack(string format [,mixed $args, ...]);

Функция pack() упаковывает заданные аргументы в бинарную строку, которая затем и возвращается. Формат параметров, а также их количество, задается при помощи строки $format, которая представляет собой набор однобуквенных спецификаторов форматирования - наподобие тех, которые указываются в sprintf(), но только без знака %. После каждого спецификатора может стоять число, которое отмечает, сколько информации будет обработано данным спецификатором. А именно, для форматов a,A,h и H число задает, какое количество символов будет помещено в бинарную строку из тех, что находится в очередном параметре-строке при вызове функции (то есть, определяет размер поля для вывода строки). В случае @ оно определяет абсолютную позицию, в которую будут помещены следующие данные. Для всех остальных спецификаторов следующие за ними числа задают количество аргументов, на которые распространяется действие данного формата. Вместо числа можно указать *, в этом случае подразумевается, что спецификатор действует на все оставшиеся данные.

Вот полный список спецификаторов формата:

  • a - строка, свободные места в поле заполняются символом с кодом 0;
  • A - строка, свободные места заполняются пробелами;
  • h - шестнадцатиричная строка, младшие разряды в начале;
  • H - шестнадцатиричная строка, старшие разряды в начале;
  • c - знаковый байт (символ);
  • C - беззнаковый байт;
  • s - знаковое короткое целое (16 битовб порядок байтов определяется архитектурой процессора);
  • S - беззнаковое короткое число;
  • n - беззнаковое целое (16 битов, старшие разряды в конце);
  • v - беззнаковое целое (16 битов, младшие разряды в конце);
  • i - знаковое целое (размер и порядок байтов определяется архитектурой);
  • I - беззнаковое целое;
  • l - знаковое длинное целое (32 бита, порядок знаков определяется архитектурой);
  • L - беззнаковое длинное целое;
  • N - беззнаковое длинное целое (32 бита, старшие разряды в конце);
  • V - беззнаковое целое (32 бита, младшие разряды в конце);
  • f - число с плавающей точкой (зависит от архитектуры);
  • d - число с плавающей точкой двойной точности (зависит от архитектуры);
  • x - символ с нулевым кодом;
  • X - возврат назад на 1 байт;
  • @ - заполнение нулевым кодом до заданной абсолютной позиции.
    // Целое, целое, все остальное - сиволы
    $bindata = pack("nvc*", 0x1234, 0x5678, 65, 66);
    
    После выполнения приведенного кода в строке $bindata будет содержаться 6 байтов в такой последовательности:
    0x12, 0x34, 0x78, 0x56, 0x41, 0x42 (в шестнадцатиричной системе счисления).

  • unpack
    Распаковывает данные из двоичной строки.

    Синтаксис :
    array unpack(string format, string data);

    Распаковывает данные из двоичной строки в массив согласно формату. Возвращает массив, содержащий распакованные элементы.
    $array = unpack("c2chars/nint", $binarydata);
    
    Возникающий в результате массив будет содержать "chars1", "chars2" и "int".


    << предыдущая | в начало | следующая >>






    Warning: include() [function.include]: URL file-access is disabled in the server configuration in /usr/home/virtwww/w_altcode-ru_ffd5b838/http/php/ssm/php_strbin.php on line 105

    Warning: include(http://altcode.ru/include/banners.php) [function.include]: failed to open stream: no suitable wrapper could be found in /usr/home/virtwww/w_altcode-ru_ffd5b838/http/php/ssm/php_strbin.php on line 105

    Warning: include() [function.include]: Failed opening 'http://altcode.ru/include/banners.php' for inclusion (include_path='.:') in /usr/home/virtwww/w_altcode-ru_ffd5b838/http/php/ssm/php_strbin.php on line 105