kostenloser Webspace werbefrei: lima-city


Problem mit RegEx

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    ryanblack

    Kostenloser Webspace von ryanblack

    ryanblack hat kostenlosen Webspace.

    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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. 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
  4. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!