Reputation: 53830
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 of 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.
Upvotes: 12
Views: 18784
Reputation: 980
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.
Upvotes: 4
Reputation: 9159
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.
Upvotes: 17
Reputation: 3632
Try pack("H*",$foo)
.
https://www.php.net/manual/en/function.pack.php
Upvotes: 5