PHP | unpack () Функция
Опубликовано: 22 Февраля, 2022
Функция unpack () - это встроенная функция в PHP, которая используется для распаковки из двоичной строки в соответствующий формат.
Синтаксис:
распаковка массива ($ формат, $ данные, $ смещение)
Параметры: эта функция принимает три параметра, как указано выше и описано ниже:
- Формат $: обязательный параметр. Он определяет формат, который будет использоваться при упаковке данных.
- a - обозначает строку, дополненную NUL.
- A - обозначает строку, заполненную пробелом.
- h - обозначает первую шестнадцатеричную строку младшего полубайта.
- H - обозначает первую шестнадцатеричную строку с полубайтом.
- c - обозначает знаковый символ.
- C - обозначает беззнаковый символ.
- s - обозначает короткое со знаком (16 бит, машинный порядок байтов).
- S - обозначает беззнаковый короткий (16 бит, машинный порядок байтов).
- n - обозначает беззнаковое короткое (16 бит, прямой порядок байтов).
- v - обозначает беззнаковое короткое (16 бит, порядок байтов с прямым порядком байтов).
- i - обозначает целое число со знаком (машинно-зависимый порядок и размер байтов).
- I - обозначает целое число без знака (машинно-зависимый порядок и размер байтов).
- l - обозначает длинный знак (32 бита, машинный порядок байтов).
- L - обозначает длину без знака (32 бита, машинный порядок байтов).
- N - обозначает длину без знака (32 бита, порядок байтов с прямым порядком байтов).
- V - обозначает длину без знака (32 бита, порядок байтов с прямым порядком байтов).
- f - обозначает число с плавающей запятой (машинно-зависимое представление и размер).
- d - означает двойной (машинно-зависимое представление и размер).
- x - обозначает нулевой байт.
- X - означает резервное копирование одного байта.
- Z - обозначает строку, дополненную NUL.
- @ - обозначает NUL-заливку до абсолютной позиции.
- $ data: Обязательный параметр. Он определяет двоичные данные, которые нужно распаковать.
- смещение: этот параметр содержит смещение для начала распаковки.
Возвращаемое значение: возвращает ассоциативный массив, содержащий распакованные элементы, в случае успеха или возвращает FALSE в случае неудачи.
Примечание: эта функция доступна для PHP 4.0.0 и более новых версий.
Example 1: This program uses C format to unpack the data from binary string.
<?php var_dump( unpack( "C*" , "GEEKSFORGEEKS" )); ?> |
Output:
array(13) { [1]=> int(71) [2]=> int(69) [3]=> int(69) [4]=> int(75) [5]=> int(83) [6]=> int(70) [7]=> int(79) [8]=> int(82) [9]=> int(71) [10]=> int(69) [11]=> int(69) [12]=> int(75) [13]=> int(83) }
Example 2:
<?php $binary_data = pack( "c2n2" , 0x1634, 0x3623, 65, 66); var_dump(unpack( "c2chars/n2int" , $binary_data )); ?> |
Output:
array(4) { ["chars1"]=> int(52) ["chars2"]=> int(35) ["int1"]=> int(65) ["int2"]=> int(66) }
Example 3: This example uses i format to unpack the data from binary string.
<?php $binary_data = pack( "i3" , 56, 49, 54); var_dump(unpack( "i3" , $binary_data )); ?> |
Output:
array(3) { [1]=> int(56) [2]=> int(49) [3]=> int(54) }
Ссылка: https://www.php.net/manual/en/function.unpack.php