The function hex2bin does not exist in PHP5.
You can use 'pack' instead :
$binary_string = pack("H*" , $hex_string);
(PHP >= 5.4.0)
hex2bin — Decodes a hexadecimally encoded binary string
$data
)Decodes a hexadecimally encoded binary string.
This function does NOT convert a hexadecimal number to a binary number. This can be done using the base_convert() function.
data
Hexadecimal representation of data.
Returns the binary representation of the given data or FALSE on failure.
If the hexadecimal input string is of odd length an E_WARNING
level error is thrown.
| Version | Description |
|---|---|
| 5.4.1 | A warning is thrown if the input string is of odd length. In PHP 5.4.0 the string was silently accepted, but the last byte was truncated. |
Example #1 hex2bin() example
<?php
$hex = hex2bin("6578616d706c65206865782064617461");
var_dump($hex);
?>
The above example will output something similar to:
string(16) "example hex data"
The function hex2bin does not exist in PHP5.
You can use 'pack' instead :
$binary_string = pack("H*" , $hex_string);
For those who have php version prior to 5.4, i have a solution to convert hex to binary. It works for me in an encryption and decryption application.
<?php
function hextobin($hexstr)
{
$n = strlen($hexstr);
$sbin="";
$i=0;
while($i<$n)
{
$a =substr($hexstr,$i,2);
$c = pack("H*",$a);
if ($i==0){$sbin=$c;}
else {$sbin.=$c;}
$i+=2;
}
return $sbin;
}
?>
A way to convert hex strings in the form "0x123ABC" to integer is to use the function base_convert("0x123ABC", 16, 10)