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