Bonjour, dans le cadre de la distribution des liens au sein d'un site j'ai besoin
- d'un chiffre ( seed ) unique depuis une url distincte
Voici comment je compte m'y prendre
Code :
- function alpha2num($a){
- $a=preg_replace("~http://|www\.|/|\.(php|htm|html)~is",'',$a);
- $r=0;$l=strlen($a);
- for($i=0;$i<$l;$i++){$r+=pow(26,$i)*(ord($a[$l-$i-1])-0x40);}
- return ceil(abs($r-1));
- }
- $bl=Array('texteA','texteB','texteC');
- $seed=alpha2num($_SERVER['REQUEST_URI']);
- $backlink=$bl[$seed%count($bl)];#ici j'obtient le texte relatif à l'url, qui ne changera point
|
Hormis que la seed devient très rapidement un chiffre avec un exposant, dont le résultat du modulo devient 0 quasi tout le temps .. ce que je souhaiterais pouvoir réduire
Existe-til une fonction divisant un chiffre, en fonction de la présence d'un exposant, pour le réduire, à un chiffre sans exposant ?
Code :
- $chiffre=12345678901234567890;#dès que le chiffre excède les 14 digits ( precision sous php ), ce dernier devient un float avec un exposant
- $max=strlen(floatval($chiffre));#ne peut jamais donner plus de 19 ..
- $max-=14;if($max>0)$chiffre=$chiffre/(10*$max);#J'ai beau faire ceci, je conserve toujours un exposant ..
|
Si le chiffre excède 20 digits, la conversion en intval($chiffre) donne 0 ..
Merci pour vos lumières
Message édité par grosbin le 21-02-2013 à 13:44:30
---------------
Photos Panoramiques Montagnes Haute Savoie