September 2009
Intermediate to advanced
912 pages
48h 11m
German
Sie wollen per Zufall eine Zeile aus einer Datei auswählen. Beispiel: Sie wollen eine Auswahl aus einer Datei mit Sprichwörtern anzeigen.
Verwenden Sie die in Listing 21.3 gezeigte Funktion pc_randomint(), die die Auswahlwahrscheinlichkeiten gleichmäßig über alle Zeilen einer Datei verteilt.
function pc_randomint($max = 1) {
$m = 1000000;
return ((mt_rand(1,$m * $max)-1)/$m);
}Listing 21.3 pc_randomint()
Hier ist ein Beispiel, das die Funktion pc_randomint() verwendet:
$line_number = 0; $fh = fopen('sprichwoerter.txt','r') or die($php_errormsg); while (! feof($fh)) { if ($s = fgets($fh,1048576)) { $line_number++; if (pc_randomint($line_number) < 1) { $line = $s; } } } fclose($fh) or ...