Problem mit RegEx
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
button
code
darstellen
ende
ergebnis
forum
geschrieben code
hilfe
http
jemand
klammern
komische fehlermeldung
passende funktion
problem
speicherplatz
string
vorschlag
weglassen
weiteren string
zitieren
-
Ich möchte mithilfe von RegEx zwei oder mehrere `<br />` in Absätze (`<p></p>`) \"umformen\". Ich hab auch schon die passende Funktion mit dem RegEx Pattern in PHP geschrieben:
function nl2p($string) { return \'<p>\' . preg_replace(\'/(<br\\\\s*?/>){1,}\\\\s*?(<br\\\\s*?/>){1,}/g\', \'</p><p>\', nl2br($string)) . \'</p>\'; }
Ich habe es schon auf [RegExr](http://gskinner.com/RegExr/) getestet (es funktioniert), aber PHP gibt immer so eine komische Fehlermeldung aus:
Warning: preg_replace() [function.preg-replace]: Unknown modifier \'>\'
![Getestet auf RegExr](http://ryanblack.lima-city.de/yaiu/p/1790334168-1892296643.png)
Weiß hier jemand weiter?
Ryan
Beitrag geändert: 18.7.2008 16:21:16 von ryanblack -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Wenn man das Teilstück \"\'/(<br\\s*/>)+...\" näher betrachtet, fällt auf, dass dein PCRE mit dem Delimiter \"/\" beginnt. In dem Fall musst du aber alle im weiteren String vorkommenden \"/\", die keinen Delimiter darstellen, entsprechend \"escapen\". Dazu gibts den Backslash \"\\\". Das Teilstück müsste also heißen \"\'/(<br\\s*\\/>)+...\". Außerdem gibts in PHP PCRE keinen Modifikator \"/g\".
Und am Ende kannst du das nl2br() auch noch weglassen, das verbrät nur unnötig Speicherplatz, weil sein Ergebnis erst zwischengelagert werden muss:
function nl2p($string) { return \'<p>\' . preg_replace(\'/(\\r\\n|[\\r\\n])\\s*(\\r\\n|[\\r\\n])/\', \'</p><p>\', $string) . \'</p>\'; }
P.S.: Und die Zwinkersmileys sind nicht von mir, die baut das Forum hier immer selbstständig ein, wenn Klammern involviert sind ...
P.S.II: Und es ist auch besser, wenn du meinen Code-Vorschlag nicht einfach kopierst, sondern dir (mit Hilfe des Zitieren-Buttons) den Original-Text meines Posts holst. Irgendwie scheint das Lima-Board immer noch Probleme mit Backslashes zu haben ...
Beitrag geändert: 18.7.2008 21:06:07 von alopex -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage