WRInaute occasionnel
La fonction que tout le monde attendais (lol)
coucou, je vous présente une fonction qui convertis un entier en base 62, et qui convertis une chaine [A-Za-z0-9]+ en un entier. Vous pouvez modifier l'alphabet a votre guise... Attention dans touts les cas les 2 arguments doivent être des chaînes de caractères.
ENCODER : base62('557','encode');
DECODER : base62('TesT','decode');
Il n'y a pas ou presque pas de limite sur la taille des nombres et de la chaîne :
voici la démo:
qui produit ceci :
Peace...
coucou, je vous présente une fonction qui convertis un entier en base 62, et qui convertis une chaine [A-Za-z0-9]+ en un entier. Vous pouvez modifier l'alphabet a votre guise... Attention dans touts les cas les 2 arguments doivent être des chaînes de caractères.
ENCODER : base62('557','encode');
DECODER : base62('TesT','decode');
Il n'y a pas ou presque pas de limite sur la taille des nombres et de la chaîne :
Code:
function base62($a,$z='encode'){$a=(string) $a;$alphabet='aTe9qDUMlIRXv4stWuFyOpH8SwQ67nAxG5dbkLfV1imzZJcjoCKhYgP203NBrE';if ($z=='encode'){$b=$a;if (intval($b)<62) $r=$alphabet[intval($a)]; else {while (gmp_cmp($b,'1')>0) {$c++;$b=gmp_div_q($b,'62');}for ($i=$c; $i>=0; $i--) {$b=gmp_pow('62',$i);$c=gmp_div_q($a,$b);$a=gmp_sub($a,gmp_mul($b,$c));$r.=$alphabet[gmp_strval($c)];}}return preg_replace('#^'.$alphabet[0].'+#','',$r);}else{$r=$a;$a=strlen($r);$b='0';for ($i=0;$i<$a;$i++) {$b=gmp_add($b,gmp_mul(strpos($alphabet,$r[$i]),gmp_pow('62',$a-1-$i)));}return gmp_strval($b);}}
Code:
echo base62('SalutVoiciUneFonctionSympaBonneJourneeWRI','decode');
echo '<br>';
echo base62('11910165319283751595642765004847352139839753636537142163964864415068284325','encode');
11910165319283751595642765004847352139839753636537142163964864415068284325
SalutVoiciUneFonctionSympaBonneJourneeWRI
Peace...