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 — Dekodiert einen hexadezimal kodierten Binärstring
Beschreibung
string hex2bin
( string
$data
)Dekodiert einen hexadezimal kodierten Binärstring.
Achtung
Diese Funktion konvertiert NICHT eine Hexadezimalzahl in eine Binärzahl. Dafür kann stattdessen die base_convert() Funktion verwendet werden.
Parameter-Liste
-
data -
Hexadezimale Repräsentation von Daten.
Rückgabewerte
Gibt die binäre Repräsentation der Daten zurück Im Fehlerfall wird FALSE zurückgegeben..
Fehler/Exceptions
Falls die Länge des Eingabestrings ungerade ist, wird ein
E_WARNING Fehler geworfen.
Changelog
| Version | Beschreibung |
|---|---|
| 5.4.1 | Wenn die Länge des Eingabestrings ungerade ist, wird ein Fehler geworfen. In PHP 5.4.0 wurde ein String ungerader Länge akzeptiert, jedoch wurde das letzte Byte abgeschnitten. |
Beispiele
Beispiel #1 hex2bin() Beispiel
<?php
$hex = hex2bin("6578616d706c65206865782064617461");
var_dump($hex);
?>
Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:
string(16) "example hex data"
Anonymous ¶
1 year ago
Anonymous ¶
1 year ago
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.
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)
