> -----Original Message----- > From: Steve Keller [mailto:[EMAIL PROTECTED]] > Sent: 12 December 2002 22:09 > > At 12/11/2002 08:09 PM, you wrote: > > >Okay, so how do you know what to replace something like > [author] with? > >What exactly are you doing again? I've forgotten the > original question. > >:) > > Ok, got a sentence, like: > > a pile of [metal] 600 feet wide and 30 feet tall. On > top of it is > a [monster]. > > The items in the [] represent the names of files containing lists of > possible results. So I need to grab the first one, "metal," open up > "metal.php," grab a random item from it, such as "gold," and replace > [metal] in the original sentence with the result. I should now have: > > a pile of gold 600 feet wide and 30 feet tall. On > top of it is a > [monster].
Well, I think I'd approach this using preg_match_all() to break out all your elements for replacement into an array, then look them up and produce a second array of the desired replacements, and then do a preg_replace using those two arrays to do your desired replaces. Something like (completely untested!): $matches = preg_match_all('|\[(.*\)]|U', $sentence, $items); if ($matches): $replacements = array(); foreach ($items[1] as $i=>$item): $replacements[$i] = /* random item looked up in "$item.php" */; $items[1][$i] = '|\['.$item.'\]|'; // reconstruct as valid preg pattern endforeach; $new_sentence = preg_replace($items[1], $replacements, $sentence); endif; Cheers! Mike --------------------------------------------------------------------- Mike Ford, Electronic Information Services Adviser, Learning Support Services, Learning & Information Services, JG125, James Graham Building, Leeds Metropolitan University, Beckett Park, LEEDS, LS6 3QS, United Kingdom Email: [EMAIL PROTECTED] Tel: +44 113 283 2600 extn 4730 Fax: +44 113 283 3211 -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php