Marcus Adams
Marcus Adams

Reputation: 53830

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 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

Answers (3)

Oladapo Omonayajo
Oladapo Omonayajo

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

Tony Miller
Tony Miller

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

Weston C
Weston C

Reputation: 3632

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

https://www.php.net/manual/en/function.pack.php

Upvotes: 5

Related Questions