2010-04-08 57 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

相关问题