Ankündigung

Einklappen
Keine Ankündigung bisher.

Zufallstring generieren

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Zufallstring generieren

    Hallo,

    wie bekomme ich es hin, das er mir daraus einen Zufallstring generiert.

    PHP-Code:
    <?php

     
    function zufall ($min 6$max 8)
     {
         
    $zeichen array_merge (range ('a''z'), range ('A''Z'), range (09));

         for (
    $i 0$i $zeichen$i++)
         {
             
    srand ((double) microtime () * 10000000);
         }
         return 
    $zeichen;
     }
     
     
    zufall (1222);

    ?>
    GN


  • #2
    hmmm..
    verstehe die Funktion leider nicht ganz...
    es gibt aber auch ne andere Möglichkeit einen Zufallsstring zu generieren.

    PHP-Code:
    <?php

      
    function zufallsstring ($sting_laenge) {
        
    srand ((double)microtime()*1000000);
        
    $zufall rand();
        
    $zufallsstring substrmd5($zufall) , $string_laenge );
        return 
    $zufallsstring;
      }  

    ?>
    http://www.fun2stay.de

    Kommentar


    • #3
      zufall (12, 22);
      Wenn dann sicher mit echo zufall (12,22);

      Kommentar


      • #4
        http://php.speedbone.de/manual/de/function.uniqid.php

        Gruß
        phpfan

        Kommentar


        • #5
          Morgen,

          zufall (12, 22);
          soll heißen, das er mir einen String zwischen min 12 und max 22 Zeichen zurückliefert.
          Und diesen soll er aus
          $zeichen = array_merge (range ('a', 'z'), range ('A', 'Z'), range (0, 9));
          generieren.

          GN

          Kommentar


          • #6
            und was macht diese for-Schleife???

            PHP-Code:
            <?php
                  
            for ($i 0$i $zeichen$i++)
                 {
                     
            srand ((double) microtime () * 10000000);
                 } 
            ?>
            http://www.fun2stay.de

            Kommentar


            • #7
              Hi,

              leider noch nichts, da ich nicht weiter weis.
              PHP-Code:
              <?php
              $zeichen 
              array_merge (range ('a''z'), range ('A''Z'), range (09));
              ?>
              er soll mir hieraus ein string liefern, der zwischen min und max sein soll, die ich als Parameter übergebe.

              GN

              Kommentar


              • #8
                wenn du es schon kompliziert haben willst, dann so:
                PHP-Code:
                <?php
                function rand_char() {
                $chars "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUFWXYZ";
                $n rand(0,(strlen($chars)-1));
                return 
                $chars{$n}
                }

                function 
                rand_string($length=20) {
                $str '';
                for(
                $n=0;$n<$length;$n++) {
                $str .= rand_char();
                }
                return 
                $str;
                }
                echo 
                rand_string(100);
                ?>

                Kommentar


                • #9
                  <?php
                  $zeichen = array_merge (range ('a', 'z'), range ('A', 'Z'), range (0, 9));
                  ?>
                  Ein Anfang. Machen wir an der Stelle weiter.
                  $min und $max Zeichenlänge bei einer Zufallszeichenkette verstehe ich zwar nicht, aber egal. Zufällig heissen die Parameter bei rand() genauso; kleiner Wink mit dem Zaunpfahl, wie Du die tatsächliche Länge der Zeichenkette ermitteln kannst, nennen wir sie $länge.
                  $zeichen ist also ein Feld mit allen möglichen Zeichen.
                  Du kannst also aus $zeichen[0] bis $zeichen[$maxindex] wählen, mit $maxindex= count($zeichen)-1.
                  Du läßt $länge Mal einen Index zwischen 0 und $maxindex zufällig wählen und hängst das entsprechende Zeichen aus $zeichen an die Ergebniszeichenkette an.

                  Kommentar


                  • #10
                    Mit md5() und einer Zufallszahl kann man auch gut Zufallstrings generieren.
                    Beispiel:
                    PHP-Code:
                    <?php
                    function Zufahlsstring($länge)//Hier kannst du die länge des Strings bestimmen.
                    {
                    $zahl1=rand(1,10000000).rand(1,10000000).rand(1,10000000);
                    $zahl2=rand(1,10000000).rand(1,10000000).rand(1,10000000);
                    $Zufallsstring=md5($zahl1).md5($zahl2);
                    $Zufallsstring strtoupper($Zufallsstring); //Falls der String nur aus Groß-
                    $Zufallsstring strtolower($Zufallsstring); //bzw. Kleinbuchstaben bestehen soll.
                    $Zufallsstringsubstr($Zufallsstring0$länge);
                    return 
                    $Zufallsstring
                    }
                    ?>
                    Musst halt nur rauskommentieren, ob die Funktion nur große oder nur kleine Buchstaben enthalten soll. Wenn Beides, dann musst du beide Zeilen rauskommentieren.

                    //EDIT:
                    Wenn auh die Länge varieren soll, musst du die function einfach mit
                    PHP-Code:
                    <?php
                    Zufallsstring
                    (rand(5,48));
                    ?>
                    aufrufen.

                    Kommentar


                    • #11
                      Ich habe auch noch eine Funktion :

                      PHP-Code:
                      <?php
                      function getPassword($length=3)
                      {
                          
                      $pw='';
                       
                      // Passwortanforderung - von allen Zeichen: [a-z], [A-Z] und [0-9] - je Eines
                       
                      while(!(preg_match('/[a-z]/',$pw)&&
                               
                      preg_match('/[A-Z]/',$pw)&&
                               
                      preg_match('/[0-9]/',$pw)))
                        {
                         
                      srand((double)microtime()*1000000);
                         
                      // Um Verwechselungen zu vermeiden, ohne diese Zeichen: 0,O,o,I,J,l,1,j
                         
                      $c '23456789abcdefghikmnpqrstuvwxyzABCDEFGHKLMNPQRSTUVWXYZ';
                         
                      $pw '';
                         while (
                      strlen($pw) < $length$pw .= substr($c, (rand() % (strlen($c))),1);
                        }
                       return 
                      $pw;
                      }
                      ?>

                      Kommentar


                      • #12
                        PHP-Code:
                        <?php
                        while(!(preg_match('/[a-z]/',$pw)&&
                                 
                        preg_match('/[A-Z]/',$pw)&&
                                 
                        preg_match('/[0-9]/',$pw)))
                          { 
                        ?>
                        PHP-Code:
                        <?php
                        while(! preg_match('#[a-z0-9]#i'$pw)) {
                        ?>

                        Kommentar

                        Lädt...
                        X