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 — Convertit une chaîne binaire encodée en hexadécimal
Description
string hex2bin
( string
$data
)Convertit une chaîne binaire encodée en hexadécimal.
Attention
Cette fonction ne convertit PAS un nombre hexadécimal en un nombre binaire. Cela peut être réalisé en utilisant la fonction base_convert().
Liste de paramètres
-
data -
Représentation hexadécimale de la donnée.
Valeurs de retour
Retourne la représentation binaire de la donnée ou FALSE si une erreur survient.
Erreurs / Exceptions
Si la chaîne d'entrée en héxadécimale est d'une longueur impaire,
une alerte de niveau E_WARNING sera émise.
Historique
| Version | Description |
|---|---|
| PHP 5.4.1 | Un avertissement est émis si la chaîne en entrée est de longueur impaire. Avec PHP 5.4.0, la chaîne était acceptée silencieusement, mais le dernier octet était tronqué. |
Exemples
Exemple #1 Exemple avec hex2bin()
<?php
$hex = hex2bin("6578616d706c65206865782064617461");
var_dump($hex);
?>
L'exemple ci-dessus va afficher quelque chose de similaire à :
string(16) "example hex data"
Anonymous
23-Feb-2012 02:28
Anonymous
31-Aug-2011 01:32
The function hex2bin does not exist in PHP5.
You can use 'pack' instead :
$binary_string = pack("H*" , $hex_string);
