Đáp án: hex2bin()
PHP cung cấp hex2bin() để chuyển chuỗi hexadecimal thành binary string, tương đương UNHEX() trong MySQL.
Cú pháp PHP
$bien = hex2bin("chuoi_hex");
Ví dụ PHP
$myFirstValue = hex2bin("7777772E4D7953514C4578616D706C652E636F6D");
var_dump($myFirstValue); // string(18) "www.MySQLExample.com"
$mySecondValue = hex2bin("416476616E6365644A617661576974684672616D65776F726B");
echo '
';
var_dump($mySecondValue); // string(23) "AdvancedJavaWithFramework"
MySQL UNHEX() - Đối ứng
Trường hợp 1
mysql> SELECT UNHEX("7777772E4D7953514C4578616D706C652E636F6D");
+---------------------------------------------------+
| UNHEX("7777772E4D7953514C4578616D706C652E636F6D") |
+---------------------------------------------------+
| www.MySQLExample.com |
+---------------------------------------------------+
Trường hợp 2
mysql> SELECT UNHEX("416476616E6365644A617661576974684672616D65776F726B");
+-------------------------------------------------------------+
| UNHEX("416476616E6365644A617661576974684672616D65776F726B") |
+-------------------------------------------------------------+
| AdvancedJavaWithFramework |
+-------------------------------------------------------------+
Hàm ngược lại: HEX() / bin2hex()
| Chuyển đổi | MySQL | PHP |
|---|---|---|
| Binary → Hex | HEX() | bin2hex() |
| Hex → Binary | UNHEX() | hex2bin() |
Lưu ý
hex2bin()yêu cầu chuỗi hex có độ dài chẵn- Chuỗi hex không được chứa tiền tố
0x - Kết quả là binary string (có thể chứa byte 0), dùng
strlen()không phảicount() - MySQL
UNHEX()trả về VARBINARY
Ứng dụng
- Lưu trữ dữ liệu binary (hình ảnh, file) dưới dạng hex trong DB
- Mã hóa/giải mã đơn giản
- Debug: Xem nội dung hex trong DB