DevKB
Web Development Knowledge Base
HOME | TOP 20 | WRITE AN ARTICLE |
Sections :



RSS RSS Feed

You too, please publish your useful code snippets in any programming language :
write an article !


Valid HTML 4.0 Transitional

Plateforme d'envoi de gros fichiers en ligne
Dépannage site web
Blog infogérance
Hébergement e-mail

Olivier Ligny - - 09/04/2008 - vue 9722 fois

str2hex() / hex2str() en PHP pour encoder/décoder du texte en hexadécimal

Voici deux fonctions PHP pour encoder/décoder du texte en hexadécimal :

function str2hex($string) {
  $hex = "";
  for ($i = 0; $i < strlen($string); $i++) {
    $hex .= (strlen(dechex(ord($string[$i]))) < 2) ?
    "0" . dechex(ord($string[$i])) : dechex(ord($string[$i]));
  }
  return $hex;
}

function hex2str($hex) {
    $str = '';
    for($i=0;$i < strlen($hex);$i+=2) {
      $str.=chr(hexdec(substr($hex,$i,2)));
    }
    return $str;
}

 

 


JP - 18/03/2011
la fonction hex2str n'est pas correcte, elle ne prend pas en compte le % ajouté dans str2hex, il faut remplacer la ligne :
for($i=0;$i < strlen($hex);$i+=2) {

par

for($i=1;$i < strlen($hex);$i+=3) {
Olivier - 18/03/2011
Pourquoi donc y aurait il un % ajouté dans str2hex ?
JP - 18/03/2011
autant pour moi, il n'y a pas de % ici. Mais pour info, dans la première fonction si on ajoute la ligne :
$hex .= "%"; avant $hex .= (strlen(dechex(ord($string[$i]))) < 2) ?

alors on obtient un résultat interpretable directement par un navigateur, ce qui est fort pratique pour la manipulation des upload de fichiers ;)
99sono - 07/01/2012
Ce q vous avez dit fait peut sense.
Il est beaucoup plus itelligent de creer deux wrappers pour executer le encoding qui vous desirez.
qui destruir ceux deux functions qui execute le comportment plus generique.


Write a comment :
Your name :     E-mail (optional) :

AntiSpam : what animal is visible on this picture ? :

Nos partenaires : iPhone 8 Cases & Protection