On Tuesday, 5 April 2011 at 16:14, Jim Lucas wrote:
On 4/5/2011 7:07 AM, Kirk Bailey wrote:
> > OK gang, to spew a single line from a file of fortune cookies, I want to
> > read it
> > and echo one line. While I found a 4 line code which gets it done, I thought
> > there was a preexisting command to do exactly that. Any feedback on this?
> No, but it can be done in one line:
> echo array_rand(@file(@$filename), 1);
> # if you wanted to do a couple checks, you could do the following
> if ( is_file(@$filename) && filesize($filename) > 0 )
> echo array_rand(file($filename), 1);
This method will eat memory unless you have a very small file.
Personally I would use filesize to get the length of the file, fopen it, fseek
to a random position, then track back to a newline and use fgets to get the
line. Then fclose, obviously.
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php