08. oktober 2004 - 15:07
Der er
25 kommentarer og 1 løsning
Hent tilfældige tal og bogstaver
Hej, jeg har forgæves søgt efter et simpelt script som kan give mig en tilfældig rækkefølge af f.eks. 10 tegn. Jeg skal meget gerne kunne angive hvilke tegn der skal kunne benyttes. Hvis der er nogen der kan hjælpe, ville jeg virkelig blive glad. Med venlig hilsen Mads
Annonceindlæg fra Salesforce
08. oktober 2004 - 15:12
#1
<? $str = "abcdefghij"; $t = ""; for( $i=1; $i<10; $i++ ) $t .= substr( $str, rand(0,9) , 1 ); echo $t; ?>
08. oktober 2004 - 15:12
#2
<?php for($len=8,$r='';strlen($r)<$len;$r.=chr(!mt_rand(0,2)? mt_rand(48,57):(!mt_rand(0,1)?mt_rand(65,90):mt_rand (97,122)))); ?> Ikke testet
08. oktober 2004 - 15:16
#3
Må der være dubletter ?
08. oktober 2004 - 15:16
#4
og hvis det samme teg ikke må være der flere gange <? $str = "abcdefghij"; $t = ""; for( $i=1; $i<10; $i++ ) { do { $c = substr( $str, rand(0,9) , 1 ); } while( strstr( $t, $c ) ); $t .= $c; } echo $t; ?>
08. oktober 2004 - 15:16
#5
Here goes.. function rand() { $Rand_String = ''; // Nuller Strengen $Array = array('b','c','d','5','6','7','X','Y','Z'); $Count = count($Array) - 1; for($i=0;$i<11;$i++){ $Rand_String .= $Array[rand(0,$count1)]; } return $rand_pass; } Håber du kan lide den =)
08. oktober 2004 - 15:18
#6
function rand() { $Rand_String = ''; // Nuller Strengen $Array = array('b','c','d','5','6','7','X','Y','Z'); $Count = count($Array) - 1; for($i=0;$i<11;$i++){ $Rand_String .= $Array[rand(0,$count1)]; } return $Rand_String; } oups havde kommet til at returnere noget der ikke eksisterede
08. oktober 2004 - 15:20
#7
hov $i <=10
08. oktober 2004 - 15:24
#8
eller vælge mellem flere end 10 tegn <? $str = "abcdefghijgjkerilfd"; $t = ""; for( $i=1; $i<=10; $i++ ) { do { $c = substr( $str, rand(0,strlen($str)-1) , 1 ); } while( strstr( $t, $c ) ); $t .= $c; } echo $t; ?>
08. oktober 2004 - 15:26
#9
Hvad gør jeg nu når jeg ønsker den skal skrive en tilfældig værdi X antal gange?
08. oktober 2004 - 15:29
#10
retter de 10 til antallet af gange
08. oktober 2004 - 15:30
#11
Synes ikke rigtig nogle virker helt efter hensigten. Den må gerne bruge samme tegn flere gange, men må ikke bruge et "tomt felt"/space og jeg vil gerne have skrevet det i php, håber nogle har mod på at forsætte :)
08. oktober 2004 - 15:31
#12
Så lav et ex. på input og output, så blir det lidt lettere
08. oktober 2004 - 15:32
#13
Jeg mener at den skal skrive de 10 forskellige tegn ud f.eks. 80 gange, så jeg får 80 forskellige værdiger med 10 tegn.
08. oktober 2004 - 15:34
#14
<? $str = "abcdefghijgjkerilfd"; for( $y=1;$y<=80;$y++) { $t = ""; for( $i=1; $i<=10; $i++ ) { do { $c = substr( $str, rand(0,strlen($str)-1) , 1 ); } while( strstr( $t, $c ) ); $t .= $c; } echo $t."<br>"; } ?>
08. oktober 2004 - 15:48
#15
Mange tak bojo, du må gerne svare. Jeg endte med dette resultat: <? // Antal tegn $antal = 10; // Antal prints $prints = 30; // Tilladte tegn $str = "abcdefghijklmnopqrstuvxyzæøå1234567890"; for( $y=1;$y<=$prints;$y++) { $t = ""; for( $i=1; $i<=$antal; $i++ ) { do { $c = substr( $str, rand(0,strlen($str)-1) , 1 ); } while( strstr( $t, $c ) ); $t .= $c; } echo $t."<br>"; } ?>
08. oktober 2004 - 15:55
#16
Skal alle strengene være unikke ?
08. oktober 2004 - 15:56
#17
Meget gerne, hvis dette kan lade sig gøre?
08. oktober 2004 - 16:06
#18
Noget i den her retning (bojo kommer nok med en pænere løsning snart): <? // Antal tegn $antal = 10; // Antal prints $prints = 30; // Tilladte tegn $str = "abcdefghijklmnopqrstuvxyzæøå1234567890"; $arr = array(); for( $y=1;$y<=$prints;) { $t = ""; for( $i=1; $i<=$antal; $i++ ) { do { $c = substr( $str, rand(0,strlen($str)-1) , 1 ); } while( strstr( $t, $c ) ); $t .= $c; } if (!in_array($t, $arr)) { $arr[] = $t; $y++; } } foreach ($arr AS $val) echo $val."<br>"; ?>
08. oktober 2004 - 16:11
#19
Nu når vi er så godt igang, kan jeg så ikke få den til at skrive hver værdi til en database?
08. oktober 2004 - 16:13
#20
ja da
08. oktober 2004 - 16:14
#21
<? // Antal tegn $antal = 10; // Antal prints $prints = 30; // Tilladte tegn $str = "abcdefghijklmnopqrstuvxyzæøå1234567890"; $arr = array(); for( $y=1;$y<=$prints;) { $t = ""; for( $i=1; $i<=$antal; $i++ ) { do { $c = substr( $str, rand(0,strlen($str)-1) , 1 ); } while( strstr( $t, $c ) ); $t .= $c; } if (!in_array($t, $arr)) { $arr[] = $t; $y++; } } foreach ($arr AS $val) { //connect mysql_query("INSERT INTO tabel (felt) VALUES ('".$val."')"); } ?>
08. oktober 2004 - 16:33
#22
bojo-> Du lagde bare en kommentar. Hindu_skp -> Du må også gerne smide et svar
08. oktober 2004 - 16:34
#23
jeg kommentere kun indtil folk er tilfredse og ber om et svar
08. oktober 2004 - 16:36
#24
Nej, det var jo bare bojo's jeg lavede om på. Bojo kan lige rette den til, så samme karakter kan fremtræde mere end en gang, jvf. kommentar kl. 15:30:12
08. oktober 2004 - 16:48
#25
Bojo-> Netop defor jeg jeg i 08/10-2004 15:48:44 skrev "Mange tak bojo, du må gerne svare." :0)
08. oktober 2004 - 19:00
#26
fino
Vi tilbyder markedets bedste kurser inden for webudvikling