The function hex2bin does not exist in PHP5.
You can use 'pack' instead :
$binary_string = pack("H*" , $hex_string);
hex2bin
(PHP >= 5.4.0)
hex2bin — Decodes a hexadecimally encoded binary string
Descrição
string hex2bin
( string
$data
)Decodes a hexadecimally encoded binary string.
Cuidado
This function does NOT convert a hexadecimal number to a binary number. This can be done using the base_convert() function.
Parâmetros
-
data -
Hexadecimal representation of data.
Valor Retornado
Returns the binary representation of the given data ou FALSE em caso de falha.
Erros
If the hexadecimal input string is of odd length an E_WARNING
level error is thrown.
Changelog
| Versão | Descrição |
|---|---|
| 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. |
Exemplos
Exemplo #1 hex2bin() example
<?php
$hex = hex2bin("6578616d706c65206865782064617461");
var_dump($hex);
?>
O exemplo acima irá imprimir algo similar à:
string(16) "example hex data"
Anonymous ¶
1 year ago
Johnson ¶
5 months ago
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;
}
?>
jarismar dot php at gmail dot com ¶
6 months ago
A way to convert hex strings in the form "0x123ABC" to integer is to use the function base_convert("0x123ABC", 16, 10)
