views:

40

answers:

2

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.

+3  A: 

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.

Tony Miller
@Tony, did you pick one of the suggested solutions at random, or is this the standard one to use?
Marcus Adams
This solution seemed short, elegant, and applicable to most all versions of PHP. I can't say if it's the canonical standard one to use, as opposed to some of the other functions provided by submitters to the PHP documentation.
Tony Miller
+2  A: 

Try pack("H*",$foo).

http://us3.php.net/manual/en/function.pack.php

Weston C