phpbar.de logo

Mailinglisten-Archive

[php] preg_replace(); und kopierte Inhalte außerhalb verwenden

[php] preg_replace(); und kopierte Inhalte außerhalb verwenden

Rafael Krysciak rafaels_mailinglists at gmx.de
Fre Aug 11 00:05:41 CEST 2006


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