$text = "Hello there, <<test>>.
My name is <<name>>";
$ASSIGN = array(test => "this is a test", 'name'=> 'BOB', );
$OPENTAG = "<<";
$CLOSETAG = ">>";
print preg_replace( "/$OPENTAG(.*?)$CLOSETAG/e", '$ASSIGN[$1]', $text );
prints:
Hello there, this is a test.
My name is BOB
To do what you want, throw a loop statement around the preg_replace
to loop thru each line of a file... etc... :)
> -----Original Message-----
> From: Jeroen Olthof [mailto:[EMAIL PROTECTED]]
> Sent: Monday, July 16, 2001 12:01 PM
> To: [EMAIL PROTECTED]
> Subject: [PHP] string replace using ereg
>
>
> hi,
>
> I want to replace strings in string using a key / value array as the
> replacemant contract
> basicly,
> I want to find a open en close tag, pick out the word in the middle and
> replace it by the value of the key that match the picked out word.
> example
>
> <<test>> <<test>>
>
> should result in
>
> this is a test this is a test
>
> well, The below code works for only one replacement cause when I add another
> on the same line. it will pick out
> test>> <<test
> als the key wordt and therefor isn't able to find this key in the array.
>
> how can I get the reg expression so it will not only get the first occurence
> of the open tag and the last of the close tag ??
>
> please help,
>
> kind regards
> Jeroen Olthof
>
> $ASSIGN = array(test => "this is a test" )
>
> $OPENTAG = "<<";
> $CLOSETAG = ">>";
>
> while ($line[$i]) {
> ereg($OPENTAG."([^*]*)".$CLOSETAG, $line[$i], $regs);
> $newString .= str_replace($this->OPENTAG.$regs[1].$this->CLOSETAG,
> $ASSIGN[$regs[1]], $line[$i]);
> }
>
>
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> To contact the list administrators, e-mail: [EMAIL PROTECTED]
>
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]