Random Quote Script in PHP



Warning: preg_match() [function.preg-match]: Compilation failed: unrecognized character after (?< at offset 3 in /nfs/c03/h03/mnt/53109/domains/clifgriffin.com/html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 2132

Warning: preg_match() [function.preg-match]: Compilation failed: unrecognized character after (?< at offset 3 in /nfs/c03/h03/mnt/53109/domains/clifgriffin.com/html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 2132

Warning: preg_match() [function.preg-match]: Compilation failed: unrecognized character after (?< at offset 3 in /nfs/c03/h03/mnt/53109/domains/clifgriffin.com/html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 2132

Warning: preg_match() [function.preg-match]: Compilation failed: unrecognized character after (?< at offset 3 in /nfs/c03/h03/mnt/53109/domains/clifgriffin.com/html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 2132

Warning: preg_match() [function.preg-match]: Compilation failed: unrecognized character after (?< at offset 3 in /nfs/c03/h03/mnt/53109/domains/clifgriffin.com/html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 2132

Warning: preg_match() [function.preg-match]: Compilation failed: unrecognized character after (?< at offset 3 in /nfs/c03/h03/mnt/53109/domains/clifgriffin.com/html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 2132

There are many random quote scripts out there, but not all are created equal. This morning I decided I wanted to create a random quote generator for my own amusement. Specifically, I wanted a page that would return a random proverb from Puddn’head Wilson’s Calendar of Mark Twain’s The Tragedy of Puddn’head Wilson.  A quick Google search seemed to indicate there was no single place to retrieve these quotes.  I decided to place all of the quotes in a single text file and place a pound sign (#) between each of them as a delimeter.

For example:

Whoever has lived long enough to find out what life is, knows how deep a debt of gratitude we owe to Adam, the first great benefactor of our race. He brought death into the world.  - Pudd'nhead Wilson's Calendar
#
Adam and Eve had many advantages, but the principal one was, that they escaped teething.  - Pudd'nhead Wilson's Calendar
#
... 

Most random quote scripts have you manually create an array of strings. Such as:

$quotes[] = "This is a quote"; 
$quotes[] = "This is another"; 

But, this is extremely inefficient from an end user perspective. And it’s not easy to add quotes. Instead, I chose to read in the file as one string and split it up based on my chosen delimeter (#).

The resulting code ended up being very simple:

$quote_repository = "wilson.txt";
$quotes_raw = file_get_contents($quote_repository);
$quotes = split("#",$quotes_raw);
 
srand ((double) microtime() * 1000000); 
$r = rand(0,count($quotes)-1); 
echo "<p>".$quotes[$r]."</p>";

To shortcut, the following would also be acceptable:

$quotes = split("#",file_get_contents("wilson.txt"));
srand ((double) microtime() * 1000000); 
$r = rand(0,count($quotes)-1); 
echo "<p>".$quotes[$r]."</p>";

And that’s all there is to it.  It pulls in all of the quotes, splits them into arrays, and displays a random one each time the script is loaded.  It’s elegant and extensible. Click here for a random Puddn’head Wilson quote.

, ,

  1. #1 by Elyce Arcieri at December 3rd, 2008

    hey cliff! long time no talk. I just made a blog and I wanted to add yours. Also, how did you make those other pages on your one blog site? I’m trying to figure it all out.

  2. #2 by clifgriffin at December 3rd, 2008

    Hey Elyce,
    How’s it going?

    Are you talking about the tabs on the top of the page? What are you using to blog?

    Clif

(will not be published)
  1. No trackbacks yet.