Ergebnis eines preg_match mit einer Fkt. verändern

_voodoo

Erfahrenes Mitglied
Hallo,

Ich nehm folgendes um nach BB Code zu suchen:
PHP:
$Text = preg_replace ("(\[php\](.+?)\[\/php\])is",'<div align="center">$1</div>', $Text);
Jetzt würd ich gerne $i nochmal mit einer Funktion formatieren, aber '.die_funktion ($i).' einzubauen bringt einen Error.

Wie lös ich das am günstigsten?
 
Danke für den Tipp, aber ich bin wohl zu dumm das richtig einzubauen:
PHP:
$Text = preg_replace ("(\[php\](.+?)\[\/php\])eis","<div align=\"center\">'.highlight_string('\\1').'</div>", $Text);
// Das ist Zeile 140 in der functions.php
Dann sende ich einen Teststring (
PHP:
$FOO = "BAR";
)und lass
ihn formatiert ausgeben, was zu folgendem führt:
Parse error: parse error in ...\xxx\xxx\functions.php(140) : regexp code on line 1

Fatal error: Failed evaluating code:
'.highlight_string('$FOO = \"BAR\";').'
in ...\xxx\xxx\functions.php on line 140
 
Da ich das Quoting bei preg_replace + e-Modifiers nicht mag, löse ich solche Sachen immer mit [phpf]preg_replace_callback[/phpf] :)

PHP:
function highlightstr($match) {
    return highlight_string($match[1], true);
}
$text = preg_replace_callback('(\[php\](.+?)\[\/php\])eis', 'highlightstr', $text);

Gruß
Marvin
 
Zurück