| 
<?
// Class dealing with alternative strings:
 // version 1.6 - now with regexps
 // String Syntax: some text (h|e|e|l|l|l|l|o| |,|world) some text
 class alternate {
 var $s;
 var $pattern;
 
 function ms () {
 //seeding
 list($usec, $sec) = explode(' ', microtime());
 return (float) $sec + ((float) $usec * 100000);
 srand(make_seed());
 
 }
 function bracket ($str) {
 //returns bracket code
 if (!strcmp($str,"(")) {return 1;}
 elseif (!strcmp($str,")")) {return -1;} else {return 0;}
 
 }
 
 function alternate ($s="") {
 $this->ms();
 $this->s=$s;
 $this->pattern="/\(([^\(]*?)\)/m";
 while (preg_match($this->pattern,$this->s)!=0)
 $this->s=preg_replace_callback ($this->pattern,
 create_function (
 '$matches',
 '$store=explode("|",$matches[1]);
 $store=explode("|",$matches[1]);
 $rand_key=$store[array_rand($store,1)];
 return $rand_key;'),
 $this->s);
 }
 }
 
 
 $alter=new alternate ("Running script\n((ha\nil|cr\ny|hello), (world|gold|silver)|how do you (do|did|man)?|anybody here?)");
 echo $alter->s;
 
 ?>
 |