You are here: Re: Select a random line from a text file « All PHP « IT news, forums, messages
Re: Select a random line from a text file

Posted by NC on 09/28/37 11:41

guttyguppy@gmail.com wrote:
>
> I know that file('mytext.txt'); will return an array of all the lines
> of text in mytext.txt. What I want is to grab the text from random line
> in mytext.txt.
>
> $lines = file('words.txt');
> $random = rand() % 100;
> echo "line=" . $lines[$random];
>
> The problem is I have a very long text file, and each time the php page
> is loaded there is a delay as it needs to assemble the enormous array.
>
> How can I tell the php page to locate the random line number in
> mytext.txt and only load that variable?

The fastest way I can think of is this:

1. Determine file size with filesize().
2. Select a random number between 0 and file size with rand().
3. Open the file for reading with fopen().
4. Go to the byte with the number randomly selected in Step 2
with fseek().
5. Read a line with fread(); if fread() returns FALSE, rewind()
and fread() again.
6. The line read in Step 5 is most likely incomplete, so you
need to read another line with another fread(); again, if
fread() returns FALSE, rewind() and fread() again.

The line read in Step 6 is the random line you seek...

Cheers,
NC

 

Navigation:

[Reply to this message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация