Avatar billede nemlig Professor
31. marts 2014 - 17:48 Der er 4 kommentarer og
1 løsning

Forstår ikke PHP-kode

Hejsa.

Nedenstående function danner en random tekst på 20 bogstaver.
Koden består af 2 x løkker, og jeg forstår ikke løkke nr. 2.
Hvis jeg kører koden uden løkke nr. 2, så dannes teksten på 20 bogstaver korrekt. Det virker til at løkke nr. er overflødig??

function RandomCode() {
                $codeLength = 20;   
                $no = 5;

                $a = array("A","B","C","D","E","F","G","H","I",
                    "K","L","M","N","O","P","Q","R","S",
                    "T","U","V","X","Y","Z","a","b","c",
                    "d","e","f","g","h","i","k","l","m",
                    "n","o","p","q","r","s","t","u","v",
                    "x","y","z");

                $code = "";

                for ($i = 0; $i < $codeLength ; $i++)
                {
                    $idx = rand(0, count($a)-1);
                    $code .= $a[$idx];
                }
               
                for ($i = 0; $i < $no; $i++)
                {
                    $idx = rand(0, $codeLength);
                    $code{$idx} = rand(0, 9);
                }

                return $code;
            }
Avatar billede Slater Ekspert
31. marts 2014 - 17:55 #1
Loop nummer to injecter tal ind i koden.

Uden loop-2 får du en streng kun bestående af bogstaver. I den løkke putter den tal ind 5 forskellige steder i strengen.

Fin idé at tilføje nogle tal, men det virker som en fuldstændig tåbelig måde at gøre det på, i stedet for bare at tilføje tallene til $a arrayet.
Avatar billede nemlig Professor
31. marts 2014 - 18:03 #2
Super - havde også lige selv opdaget det med tallene.

Tak for input med at smide tallene i Arrayet.

Smid venligst et svar.
Avatar billede nemlig Professor
31. marts 2014 - 18:08 #3
Koden er i øvrigt noget, jeg har genbrugt fra noget andet eller fundet på nettet, hvorfor det kan have været tanken, at der kun skulle være 5 tal i teksten. Men for mig er det lige meget, hvorfor jeg følger dit forslag med tallene i arrayet.
Avatar billede Slater Ekspert
31. marts 2014 - 18:21 #4
Godt nok :)
Avatar billede Slettet bruger
31. marts 2014 - 20:03 #5
Hvis du kunne tænke dig en lidt mere "simpel" version af det du har.

/**
    *
    * @param int $length
    * @return string
    */
    function randString($length)
    {
        $az09 = str_split("abcdefghikjlmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789");
       
        $randString = "";
        for ($i = 0; $i < $length; $i++)
        {
            $rand = rand(0, sizeof($az09)-1);
            $randString .= $az09[$rand];
        }
       
        return $randString;
    }
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