2010-04-08 19 views
10

Estoy familiarizado con la función bin2hex() de php para convertir datos binarios a su representación hexadecimal.¿Cómo convertir la representación hexadecimal de datos a datos binarios en PHP?

Sin embargo, ¿cuál es la función complementaria para convertir la representación hexadecimal de los datos en datos binarios?

Por ejemplo:

$foo = "hello"; 
$foo = bin2hex($foo); 
echo $foo; // Displays 68656c6c6f 

¿Cómo se enciende de nuevo a saludar?

$foo = "68656c6c6f"; 
// Now what? 

No hay función hex2bin().

Respuesta

15

soluciones Si nos fijamos en PHP's bin2hex page, no sugiere incluido éste:

$foo = pack("H*" , $foo); 
echo $foo; 

También hay varias implementaciones de hex2bin que se puede elegir.

+1

@Tony, ¿eligió una de las soluciones sugeridas al azar, o esta es la estándar para usar? –

+1

Esta solución parecía corta, elegante y aplicable a la mayoría de las versiones de PHP. No puedo decir si es el estándar canónico para usar, a diferencia de algunas de las otras funciones proporcionadas por los remitentes a la documentación de PHP. –

4

para aquellos que tienen PHP 5.4 y superior, hay una manera estándar de hacer esto:

<?php $bin = hex2bin("6578616d706c65206865782064617461"); var_dump($bin); ?>

La salida del código anterior debe ser similar a:

string(16) "example hex data"

Salido de PHP hex2bin page.

Cuestiones relacionadas