renephoenix.de

preg_replace_callback

Ich mag solche Fehler, an denen man stundenlang überlegt und daran verzweifelt. Einer ist die PHP-Funktion preg_replace_callback. Sinn und Zweck ist die Möglichkeit, daß man nach regulären Ausdrücken suchen kann, und bei gefundenen Stellen sofort eine Funktion ausführt, deren Rückgabewert an diese Stelle ersetzt wird.

Wenn ich das PHP-Manual anwende, müßte die entsprechende Zeile so aussehen:

$text = preg_replace_callback( '/(\n|^)\|([^\*].*)/', '_callbacktables', $text);

Dies funktioniert, wenn ich die Funktion direkt — oder innerhalb einer Funktion aufrufe. Die Ersetzung tritt auch ein, wenn ich das Ergebnis über echo ausgebe! Aber sie funktioniert nicht, wenn ich sie in dieser Form innerhalb als Methode einer Klasse aufrufe.

An einer anderen Stelle fand ich eine Variante, die Funktion über ein Array anzugeben. Denn Sinn habe ich noch nicht verstanden, aber auf mein Problem entsprechend angewedendet, funktioniert es erst einmal:

$text = preg_replace_callback( '/(\n|^)\|([^\*].*)/', array('SimpleHTML', '_callbacktables'), $text);

Bisherige Kommentare (0)

Es wurde noch kein Kommentar geschrieben!

Kommentar verfassen

Freiwillige Angabe
Freiwillige Angabe
Der Text kann mit Textile formatiert werden, z.B. *fett* _kursiv_ "link":url. Wie das geht?
Wieviel ist 40 plus 2?

Bisherige Trackbacks (0)

Es wurde noch kein Trackback empfangen!