Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

preg_replace: Nur zwischen 2 Tags ersetzen.

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
wuschba
PostRank 8
PostRank 8
Beiträge: 655
Registriert: 16.06.2006, 16:37

Beitrag von wuschba » 07.02.2008, 17:02

Hi! Stehe gerade bezüglich preg_replace etwas auf dem Schlauch:
Ich möchte gerne in einem HTML-Code alle Leerzeichen durch Komma ersetzen, jedoch nur, wenn der Text in <b>-Tags eingefasst ist:

Dies ist mein Text, und <b>dies hier ist fett</b> - toll nicht?

Soll ergeben:
Dies ist mein Text, und <b>dies,hier,ist,fett</b> - toll nicht?

Wenn ich sowas absetze:
$txt = preg_replace("/<b>(.*)([ ])(.*)\"</b>/sU", "<b>\"$1,$3\">", $txt);
wird natürlich immer nur das ERSTE Leerzeichen ersetzt, und nicht ALLE:
Dies ist mein Text, und <b>dies, hier ist fett</b> - toll nicht?

Wie kriege ich es hin, dass alle ersetzt weden? Ich kann die Abfrage oben natürlich 1000x ausführen, aber das erscheint mir etwas Overkill ;-)