2010-04-08 34 views
10

Tôi đã quen với chức năng của php bin2hex() để chuyển đổi dữ liệu nhị phân thành biểu diễn thập lục phân của nó.Làm cách nào để chuyển đổi dữ liệu thập lục phân của dữ liệu sang dữ liệu nhị phân trong PHP?

Tuy nhiên, chức năng bổ sung để chuyển đổi biểu diễn thập lục phân của dữ liệu trở lại dữ liệu nhị phân là gì?

Ví dụ:

$foo = "hello"; 
$foo = bin2hex($foo); 
echo $foo; // Displays 68656c6c6f 

Làm thế nào để biến nó trở lại xin chào?

$foo = "68656c6c6f"; 
// Now what? 

Không có chức năng hex2bin().

Trả lời

15

giải pháp Nếu bạn nhìn vào PHP's bin2hex page, có đề nghị trong đó có một này:

$foo = pack("H*" , $foo); 
echo $foo; 

Ngoài ra còn triển khai khác nhau của HEX2BIN mà bạn có thể lựa chọn.

+1

@Tony, bạn đã chọn một trong các giải pháp được đề xuất một cách ngẫu nhiên hay đây là giải pháp chuẩn để sử dụng? –

+1

Giải pháp này có vẻ ngắn gọn, thanh lịch và có thể áp dụng cho hầu hết các phiên bản của PHP. Tôi không thể nói nếu đó là tiêu chuẩn chuẩn để sử dụng, trái ngược với một số chức năng khác được cung cấp bởi người gửi đến tài liệu PHP. –

4

Đối với những người có PHP 5.4 trở lên, có một cách tiêu chuẩn để làm điều này:

<?php $bin = hex2bin("6578616d706c65206865782064617461"); var_dump($bin); ?>

Sản lượng của các mã trên nên được tương tự như:

string(16) "example hex data"

Bị tắt khỏi số PHP hex2bin page.

Các vấn đề liên quan