Hex2bin: примеры (PHP)

Функция hex2bin для преобразования шестнадцатеричных строк
Раздел: Преобразование типов/форматов
hex2bin(string $string): string|false

Функция hex2bin в PHP

Функция hex2bin() выполняет преобразование шестнадцатеричного представления данных в бинарный формат. Она принимает строку, содержащую шестнадцатеричные символы, и возвращает соответствующую бинарную строку.

Назначение и применение

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

Аргументы функции

Функция принимает один обязательный параметр:

  • $string – строка, содержащая шестнадцатеричное представление данных. Строка может содержать только символы из набора [0-9a-fA-F]. Если передана пустая строка, возвращается пустая же строка.

Примеры использования hex2bin

Базовое преобразование
echo hex2bin('48656c6c6f');
Hello
Работа с пустой строкой
var_dump(hex2bin(''));
string(0) ""
Обработка строки с пробелами
echo hex2bin('74657374');
test

Похожие функции в PHP

  • bin2hex() – выполняет обратное преобразование, кодируя бинарную строку в шестнадцатеричное представление.
  • pack() с форматом 'H*' – более универсальная функция упаковки данных, которая может выполнять аналогичное преобразование. Её предпочтительнее использовать при сложных преобразованиях форматов.
  • base_convert() – конвертирует числа между системами счисления, но не предназначена для работы со строками произвольной длины.

Аналоги в других языках

Python
bytes.fromhex('48656c6c6f').decode('utf-8')
'Hello'
JavaScript
Buffer.from('48656c6c6f', 'hex').toString()
Hello
MySQL
SELECT UNHEX('48656c6c6f');
Hello
Go
hex.DecodeString("48656c6c6f")
[72 101 108 108 111]

Типичные ошибки

Нечетная длина строки
hex2bin('123');
Warning: hex2bin(): Hexadecimal input string must have an even length
Недопустимые символы
hex2bin('ghijkl');
Warning: hex2bin(): Input string must be hexadecimal string
Передача массива
hex2bin(['48656c6c6f']);
Warning: hex2bin() expects parameter 1 to be string, array given

Изменения в PHP 8

В PHP 8.1 функция начала возвращать ошибку уровня E_WARNING при передаче null. Ранее происходило неявное преобразование к пустой строке.

hex2bin(null);
Warning: hex2bin(): Argument #1 ($string) must be of type string, null given

Расширенные примеры

Обработка SHA-256 хеша
Пример php
$hashHex = hash('sha256', 'data');
echo bin2hex(hex2bin($hashHex)) === $hashHex ? 'Valid' : 'Invalid';
Valid
Чтение бинарных структур
Пример php
$binary = hex2bin('01020304');
$unpacked = unpack('C4', $binary);
print_r($unpacked);
Array
(
    [1] => 1
    [2] => 2
    [3] => 3
    [4] => 4
)
Конвертация MAC-адреса
Пример php
$macHex = 'a1b2c3d4e5f6';
$macBinary = hex2bin($macHex);
echo chunk_split(bin2hex($macBinary), 2, ':');
a1:b2:c3:d4:e5:f6:
Работа с двоичными протоколами
Пример php
$packet = hex2bin('005048454c4c4f');
$length = unpack('n', $packet)[1];
echo substr($packet, 2, $length);
HELLO

PHP hex2bin function comments

En
Hex2bin Decodes a hexadecimally encoded binary string