Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/12/2010, 14h45   #1
Nouveau Membre du Club
 
Inscription : avril 2009
Messages : 36
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 36
Points : 35
Points : 35
Par défaut Exception avec srand & rand: aucun résultat

Bonjour,

J'ai un problème avec rand qui ne fournit aucune valeur lorsque le srand est à une certaine valeur. Je ne comprends pas du tout pourquoi.
Voici une partie qui reproduit le problème:
Code :
1
2
3
4
5
6
7
<?php
$charset = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
$chunk = 'eeb2b02a';
srand(hexdec($chunk));
$output = substr($charset, rand(0,strlen($charset)), 1);
echo 'Output:'.$output.'fin';
?>
Normalement, c'est censé me fournir une lettre ou chiffre venant de $charset, et qui soit toujours le même suivant le code hexa rentré avant ($chunk). Tous les autres codes hexa que j'ai testé fonctionnent, mais celui-ci ne me retourne rien. Exemple: 'ff90821f'

Merci
max235 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2010, 21h25   #2
Nouveau Membre du Club
 
Inscription : avril 2009
Messages : 36
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 36
Points : 35
Points : 35
J'ai trouvé d'où vient le problème.
Le rand s'effectue entre 0 et 62 (taille de $charset), ce qui donne 63 possibilités hors $charset n'a que 62 caractères. Ainsi lorsque que l'on tombait sur 62 avec rand, soit le 63ème caractère, il ne m'affichait rien. Un petit -1 après la fonction strlen résout le problème.
max235 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h47.


 
 
 
 
Partenaires

Hébergement Web