2010-04-08 9 views
10

Ich bin vertraut mit PHP-Funktion bin2hex() für die Umwandlung von Binärdaten in seine hexadezimale Darstellung.Wie konvertiert man die hexadezimale Darstellung von Daten in binäre Daten in PHP?

Was ist jedoch die Komplement-Funktion, um die hexadezimale Darstellung der Daten in Binärdaten umzuwandeln?

Zum Beispiel:

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

Wie kann ich es zurückdrehen zu hallo?

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

Es gibt keine hex2bin() Funktion.

Antwort

15

Wenn Sie bei PHP's bin2hex page aussehen, gibt es vorgeschlagenen Lösungen einschließlich dieser:

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

gibt es auch verschiedene Implementierungen von HEX2BIN, die Sie wählen können.

+1

@Tony, haben Sie eine der vorgeschlagenen Lösungen zufällig ausgewählt, oder ist dies die Standardanwendung? –

+1

Diese Lösung schien kurz, elegant und für die meisten PHP-Versionen geeignet. Ich kann nicht sagen, ob es der kanonische Standard ist, der verwendet wird, im Gegensatz zu einigen anderen Funktionen, die von den Übermittlern der PHP-Dokumentation bereitgestellt werden. –

4

Für diejenigen, die PHP 5.4 und höher, dann ist es eine standardisierte Möglichkeit, dies zu tun:

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

Der Ausgang des obigen Code sollte ähnlich sein:

string(16) "example hex data"

Erhalten von der PHP hex2bin page.

Verwandte Themen