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: > > <?php > > 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. Simples. -Stuart -- Stuart Dallas 3ft9 Ltd http://3ft9.com/ -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php