The function pack("H*" , $hex_string); will not work as expected if $hex_string contains an odd number of hexadecimal digits.
For example:
<?php echo ord(pack("H*", 'F')); ?>
will return 240 not 15. Use pack("H*", '0F'); instead.
hex2bin
(PHP >= 5.4.0)
hex2bin — Decodifica una cadena binaria codificada hexadecimalmente
Descripción
string hex2bin
( string
$data
)Decodifica una cadena binaria codificada hexadecimalmente.
Precaución
Esta función NO convierte un número hexadecimal en un número binario. Esto se puede realizar usando la función base_convert().
Parámetros
-
data -
La representación hexadecimal de datos.
Valores devueltos
Devuelve la representación binaria de los datos dados o FALSE en caso de error.
Errores/Excepciones
Si la cadena de entrada hexadecimal tiene una longitud impar se emite un error de nivel
E_WARNING.
Historial de cambios
| Versión | Descripción |
|---|---|
| PHP 5.4.1 | Se emite una advertencia si la cadena de entrada tiene una longitud impar. En PHP 5.4.0 la cadena era aceptada de forma silenciosa, pero el último byte era truncado. |
Ejemplos
Ejemplo #1 Ejemplo de hex2bin()
<?php
$hex = hex2bin("6578616d706c65206865782064617461");
var_dump($hex);
?>
El resultado del ejemplo sería algo similar a:
string(16) "example hex data"
Anonymous
23-Feb-2012 03:28
Anonymous
31-Aug-2011 03:32
The function hex2bin does not exist in PHP5.
You can use 'pack' instead :
$binary_string = pack("H*" , $hex_string);
