PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Verschiedene Suchbegriffe verschieden ersetzen


to.ni
14.12.2004, 19:44
Hallo Forum,

habe noch nicht die großen Erfahrungen mit RegEx gemacht und spiele mich sozusagen noch mit der Materie.
Jetzt hätte ich aber mal ne Frage in Bezug auf reguläre Ausdrücke in PHP... Vielleicht kennt ihr ja das Wikipedia-Projekt. Wer dort einen Text verfassen will kann verschiedene Formatierungen in Form von Sonderzeichen eingeben, z.B.

'''Dieser Text wird kursiv''' und dieser ''fett'' dargestellt.

Dabei wird das erste ''' durch <i> und das zweite durch </i> bzw. das erste '' durch <b> und das zweite durch </b> ersetzt.

Ich möchte sowas gerne mal nachprogrammieren und hab auch schon was auf die Beine gestellt, allerdings mit zwei Funktionsaufrufen:

$text = "Das ist ''fett'' und hier '''kursiv''' und hier '''''beides'''''";
$neu = preg_replace("/'{3}(.*)'{3}/U","<i>\\1</i>",$text);
$neu = preg_replace("/'{2}(.*)'{2}/U","<b>\\1</b>",$neu);
echo "<p>$neu</p>";
Das funktioniert soweit, aber geht es nicht auch mit einem preg_replace-Aufruf? Käme mir irgendwie sinnvoller/sparsamer vor...

Danke für eure Hilfe!
mfg tobi


Jan Krüger
14.12.2004, 21:01
preg_replace() in PHP kann für den Pattern und die Ersetzung Arrays; dann werden die Array-Elemente aus den beiden Arrays paarweise abgearbeitet. Siehe Doku.

to.ni
15.12.2004, 20:52
Cool, Danke für die schnelle Hilfe. Habe derartige Beispiele leider nicht im Buch gehapt... werde mich aber jetzt der Doku widmen...