URL: https://www.overclockers.at/coding-stuff/srand_not_random_200315/page_1 - zur Vollversion wechseln!
Kann mir jemand sagen warum srand nicht random ist? Jedes mal wenn jemand http://www.markusklug.com ansurft, kommt das Zitat von Elisabeth Opelanik als erstes (Nr.0 im Array)... erst danach kommen andere. Wo kann da der Fehler liegen?
Code: PHPfunction rnd(){ $path = "bla"; $handle = fopen($path, "r"); $lines=file($path); //$lines is an array $linecount=(count($lines)-1); srand(microtime()*1000000); $linenum = rand(0,$linecount); $parts=explode("::",$lines[$linenum]); echo htmlentities($parts[count($parts)-2])."<br><br>".htmlentities($parts[count($parts)-1]);
so wie ich das seh setzt du mit srand() den anfangswert für den zufallsgenerator fest. wenn du die zeile weglässt, sollte es funktionieren.
http://us.php.net/srand
http://us.php.net/rand
Habe es schon ohne srand versucht, dann geht es gleich schlecht bzw. bei refresh noch schlechter...
Habe jetzt srand*srand eingebaut, ich hoffe das klappt nun =).
Es kann auch Zufall gewesen sein, dass "beim Ersten mal" immer dasselbe Zitat kommt. Es sind nun mal Zufallswerte . Darüberhinaus macht es theoretisch keinen Unterschied auf der Server Seite, ob jemand das script zum ersten mal aufruft, oder nicht.
Zitat von SpikxEs kann auch Zufall gewesen sein, dass "beim Ersten mal" immer dasselbe Zitat kommt. Es sind nun mal Zufallswerte. Darüberhinaus macht es theoretisch keinen Unterschied auf der Server Seite, ob jemand das script zum ersten mal aufruft, oder nicht.
Mach einfach nur srand(time()). Das sollte problemlos funktionieren!
Edit: Bist du dir sicher, dass das line-Array und der linecount passt?
Alternativ sollte shuffle() und ein anschließendes array_pop() auch ein Element zufällig aus dem Array auswählen.
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025