> -----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
       $new_sentence = preg_replace($items[1], $replacements, $sentence);



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
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

Reply via email to