Avatar billede mads1987 Nybegynder
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
Avatar billede bojo Nybegynder
08. oktober 2004 - 15:12 #1
<?
$str = "abcdefghij";
$t = "";
for( $i=1; $i<10; $i++ )
    $t .= substr( $str, rand(0,9) , 1 );
   
echo $t;   
?>
Avatar billede stalle Nybegynder
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
Avatar billede hmortensen Nybegynder
08. oktober 2004 - 15:16 #3
Må der være dubletter ?
Avatar billede bojo Nybegynder
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;   
?>
Avatar billede stois Nybegynder
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 =)
Avatar billede stois Nybegynder
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
Avatar billede bojo Nybegynder
08. oktober 2004 - 15:20 #7
hov $i <=10
Avatar billede bojo Nybegynder
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;   
?>
Avatar billede mads1987 Nybegynder
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?
Avatar billede bojo Nybegynder
08. oktober 2004 - 15:29 #10
retter de 10 til antallet af gange
Avatar billede mads1987 Nybegynder
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 :)
Avatar billede hmortensen Nybegynder
08. oktober 2004 - 15:31 #12
Så lav et ex. på input og output, så blir det lidt lettere
Avatar billede mads1987 Nybegynder
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.
Avatar billede bojo Nybegynder
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>";   
}
?>
Avatar billede mads1987 Nybegynder
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>";   
}
?>
Avatar billede hmortensen Nybegynder
08. oktober 2004 - 15:55 #16
Skal alle strengene være unikke ?
Avatar billede mads1987 Nybegynder
08. oktober 2004 - 15:56 #17
Meget gerne, hvis dette kan lade sig gøre?
Avatar billede hmortensen Nybegynder
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>";
?>
Avatar billede mads1987 Nybegynder
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?
Avatar billede bojo Nybegynder
08. oktober 2004 - 16:13 #20
ja da
Avatar billede hmortensen Nybegynder
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."')");
}
?>
Avatar billede mads1987 Nybegynder
08. oktober 2004 - 16:33 #22
bojo-> Du lagde bare en kommentar.
Hindu_skp -> Du må også gerne smide et svar
Avatar billede bojo Nybegynder
08. oktober 2004 - 16:34 #23
jeg kommentere kun indtil folk er tilfredse og ber om et svar
Avatar billede hmortensen Nybegynder
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
Avatar billede mads1987 Nybegynder
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)
Avatar billede bojo Nybegynder
08. oktober 2004 - 19:00 #26
fino
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester