Version: 2.0
Type: Full Script
Category: Other
License: GNU General Public License
Description: This program reads quotes from a text file, and then prints one randomly each time a page is loaded.
// Version 1.0 is really inefficient since it reads the whole file into an array.
// This version dives into a random position in the file, it reads two strings since the first is lilely to be only a partial line, if it hit EOF then it wraps to the begining.
// Get a random quote.
$file = "./Common/Quotes.txt";
if(!file_exists($file) || !($fp = fopen($file, "r")))
{
die("Unable to open file $file.");
}
// Seek to random position in the file.
$size = filesize($file);
srand((double)microtime()*1000000);
$randval = rand(0, $size);
fseek($fp, $randval);
// Throw away partial line.
$quote = fgets($fp, 1024);
// Read next whole line.
$quote = trim(fgets($fp, 1024));
// If EOF wrap to begining of file.
if(empty($quote))
{
fseek($fp, 0);
$quote = trim(fgets($fp, 1024));
}
fclose($fp);
// Print the quote.
print("Random quote - \"$quote\"");