How to convert hexadecimal representation of data to binary data in PHP?
I'm familiar with php's function bin2hex()
for converting binary data to its hexadecimal representation.
However, what is the complement function to convert the hexadecimal representation o开发者_运维百科f the data back to binary data?
For example:
$foo = "hello";
$foo = bin2hex($foo);
echo $foo; // Displays 68656c6c6f
How do I turn it back to "hello"?
$foo = "68656c6c6f";
// Now what?
There is no hex2bin()
function.
If you look at PHP's bin2hex page, there's suggested solutions including this one:
$foo = pack("H*" , $foo);
echo $foo;
There's also various implementations of hex2bin that you can choose from.
Try pack("H*",$foo)
.
http://us3.php.net/manual/en/function.pack.php
For those who have PHP 5.4 and above, there's a standard way of doing this:
<?php
$bin = hex2bin("6578616d706c65206865782064617461");
var_dump($bin);
?>
The output of the code above should be similar to:
string(16) "example hex data"
Gotten off of the PHP hex2bin page.
精彩评论