Soyez le premier à donner votre avis sur cette source.
Snippet vu 13 949 fois - Téléchargée 16 fois
<? function map($lettre) echo chr($lettre); $charset = range(97,122); $num = count($charset); $last = $num-1; $length = 5; $mot = array(); while($mot[$length - 1] <= $last) { for($i = 0; $i < $num; ++$i) { $mot[0] = $i; array_walk($mot, 'map'); echo "\n"; } $j = 0; while($mot[$j] == $last) { $mot[$j] = 0; ++$j; } if($j == $length) break; $mot[$j]++; } ?> En récursif : <?php $charset = range(97, 122); function recurse($width, $position, $base) { global $charset; foreach($charset as $char) { if ($position < $width - 1) recurse($width, $position + 1, $base.chr($char)); echo $base.chr($char)."\n"; // ici on fait ce que l'on veut du mot là je l'affiche. } } $maxChars = 3; for($width = 1; $width < $maxChars+1; ++$width) recurse($width, 0, ""); ?>
je donne un exemple du resultat de la version recursive avec : $maxChars = 5;
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
aa
ab
ac
ad
ae
af
ag
ah
ai
aj
ak
al
am
an
ao
ap
aq
ar
as
at
au
av
aw
ax
ay
az
a
aaa
aab
aac
aad
aae
aaf
aag
aah
aai
aaj
aak
aal
aam
aan
aao
aap
aaq
aar
aas
aat
aau
aav
aaw
aax
aay
aaz
aa
a
Comme vous pouvez voir seulment le dernier charactère de chaque bloc est modifié et le résultat "aa" est double.
ce code est donc pas valable. une solution au problèmme ?
(mon seul objectif c'est de tester la sécurité de mes propres sites web.)
dans l'attente d'une réponse clair
merci
En testant la fonction récursive, j'aperçois des doublons parasites, serait-ce possible de les éliminer autrement que par des tests conditionnels (ce que j'ai fait) ? Merci d'avance !
PS j'ai mis 10 ;-)
Simple. Accessible.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.