2010-04-08 60 views
10

我熟悉php的函數bin2hex()用於將二進制數據轉換爲其十六進制表示。如何在PHP中將數據的十六進制表示轉換爲二進制數據?

但是,將數據的十六進制表示轉換回二進制數據的補充函數是什麼?

例如:

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

我怎麼把它回個招呼?

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

沒有hex2bin()函數。

回答

15

如果你看一下PHP's bin2hex page,還有的建議解決方案,包括這一個:

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

還有HEX2BIN,你可以選擇的各種實現方式。

+1

@Tony,你是否隨機選擇了一種建議的解決方案,或者這是標準的解決方案? – 2010-04-10 09:41:06

+1

該解決方案看起來簡潔,優雅,適用於大多數所有版本的PHP。我不能說它是使用標準標準的標準,而不是提交者提供給PHP文檔的其他一些功能。 – 2010-04-10 14:54:11

4

對於那些誰擁有PHP 5.4及以上,有這樣做的標準方式:

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

以上代碼的輸出應該類似於:

string(16) "example hex data"

取得了PHP hex2bin page

相關問題