Mailinglisten-Archive |
Alex Emken schrieb:
> <?php
>
> $input = "bla bla bla {foobar} bla bla bla\n bla bla {fubar} blaa bla
> {dasgehtauch} bla bla ";
>
> function myReplace($matches) {
>
> $a = array('foobar' => 'hallo',
> 'fubar' => 'blubb',
> 'dasgehtauch' => '42');
>
> $str = str_replace(array('{','}'), '', $matches[1]);
> return (isset($a[$str])) ? $a[$str] : $matches[1];
> }
>
> $output = preg_replace_callback('%({\w+})%', "myReplace", $input);
>
> echo $output;
Hallo,
der Reguläre-Ausdruck könnte '%{(\w+)}%' heißen. Dann bekommst Du die
geschweiften Klammern nicht mitgeliefert.
Und somit könnte die Zeile
$str = str_replace(array('{','}'), '', $matches[1]);
weg.
Gruß
Rafael
php::bar PHP Wiki - Listenarchive