Новые книги

Shell -- это командная оболочка. Но это не просто промежуточное звено между пользователем и операционой системой, это еще и мощный язык программирования. Программы на языке shell называют сценариями, или скриптами. Фактически, из скриптов доступен полный набор команд, утилит и программ UNIX. Если этого недостаточно, то к вашим услугам внутренние команды shell -- условные операторы, операторы циклов и пр., которые увеличивают мощь и гибкость сценариев. Shell-скрипты исключительно хороши при программировании задач администрирования системы и др., которые не требуют для своего создания полновесных языков программирования.
Николай Додонов – специалист по личной эффективности и планированию, владелец и директор торговой компании ЕТ-Россия, создатель сервиса для учета личных финансов FastBudget.

Вы читали книги по тайм-менеджменту, посещали семинары и тренинги и все равно задыхаетесь от работы?

Вы не виноваты. 90 % предпринимателей прошли тот же путь и чувствуют себя точно так же. Причина всех бед не в том, что мы не можем организовать время или расставить приоритеты, а в том, что нас не научили управлять памятью, информацией и мотивацией.

Узнайте, как это делать правильно, и вы сможете в 2 раза больше успевать и в 2 раза меньше работать. Сведения и упражнения, которые вы найдете в книге, помогут вам в этом!

Книга подходит для творческих людей!

pack

Учебник РНР
НазадВперёд

pack

(PHP 3, PHP 4)

pack - упаковывает данные в бинарную строку.

Описание

string pack (string format [, mixed args])

Упаковывает данные аргументы в бинарную строку в соответствии с форматом format. Возвращает бинарную строку с данными.

Идея этой функции была взята из Perl, и весь код форматирования работает аналогично, однако отсутствуют некоторые коды форматирования, такие как Perl'овский "u". Строка форматирования состоит из кодов форматирования и последующего необязательного аргумента повторения/repeater. Аргумент repeater может быть целочисленным или * для повторения до конца данных ввода. Для a, A, h, H повторение специфицирует, сколько символов аргумента data принимается, для @ это абсолютная позиция для размещения следующих данных, для других параметров повторение специфицирует, сколько аргументов данных употребляется и упаковывается в результирующую бинарную строку. В настоящее время реализованы:

  • строка с NUL-заполнением

  • строка со SPACE-заполнение

  • h Hex-строка, сначала нижний разряд

  • H Hex-строка, сначала высший разряд

  • c знаковый char

  • C беззнаковый char

  • s знаковый short (всегда 16 бит, машинный байтовый порядок)

  • S беззнаковый short (всегда 16 бит, машинный байтовый порядок)

  • n беззнаковый short (всегда 16 бит, байтовый порядок big endian)

  • v беззнаковый short (всегда 16 бит, байтовый порядок little endian)

  • i signed integer (машиннозависимый размер и байтовый порядок)

  • I беззнаковый integer (машиннозависимый размер и байтовый порядок)

  • l signed long (всегда 32 бита, машинный байтовый порядок)

  • L беззнаковый long (всегда 32 бита, машинный байтовый порядок)

  • N беззнаковый long (всегда 32 бита, байтовый порядок big endian)

  • V беззнаковый long (всегда 32 бита, байтовый порядок little endian)

  • f float (машиннозависимый размер и представление)

  • d double (машиннозависимый размер и представление)

  • x NUL байт

  • X обратно на один байт

  • @ NUL-заполнение до абсолютной позиции

Пример 1. Строка форматирования pack()
$binarydata = pack ("nvc*", 0x1234, 0x5678, 65, 66);

Результирующая бинарная строка имеет длину 6 байт и содержит байтовую последовательность 0x12, 0x34, 0x78, 0x56, 0x41, 0x42.

Обратите внимание, что отличие между знаковым и беззнаковым значением влияет только на функцию unpack(), а функция pack() даёт одинаковые результаты для знакового и беззнакового кода формата.

Отметьте также, что PHP внутренне хранит значения integer как знаковые значения машиннозависимого размера. Если вы задаёте значение как беззнаковое integer, слишком большое, чтобы хранить его таким способом, оно конвертируется во float, что часто приводит к непредсказуемым результатам.


Назад Оглавление Вперёд
leak Вверхshow_source