No tak, tylko nie zawsze dysponujemy pamięcią, do której możemy wrzucić cały plik a nawet jeśli to lepiej tego nie robić, bo się zamuli. Z kolei policzenie linii w pliku jest proste (kod dałem powyżej w linku), ale musimy dwa razy parsować plik (raz by policzyć linie a drugi raz by wybrać właściwą linię)
Możemy zrobić np. tak: jeśli przechowujemy nr wpisu w rekordach pliku, pobieramy sobie ostatni rekord (w tutorialu też jest kod jak to zrobić a także na forum:
http://forum.php.pl/index.php?showtopic=139139), wyciągamy ID wpisu i losujemy liczbę od 1 do ID tego wpisu (funkcją
rand) i wczytujemy do pliku rekord o tym ID. Jeśli ID tego wpisu nie ma (bo został np. twardo skasowany) to bierzemy po prostu następny rekord.
Ale to rozwiązanie wydaje się najprostsze: mierzymy rozmiar pliku i losujemy miejsce w pliku, do którego przeniesiemy się funkcją
fseek i odczytamy rekord pod tym miejscem - po prostu parsujemy plik nie od początku, ale od losowego miejsca i nie do końca, lecz do momentu wczytania całego rekordu - po czym używamy break by wyskoczyć z pętli i wyświetlić wylosowaną linię.