reg.exp - parse error, unexpected char. ich komm net drauf...

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • reg.exp - parse error, unexpected char. ich komm net drauf...

    Hallo zusammen,
    reguläre ausdrücke - so mein persönliches waterloo...

    also:
    ich habe eine reihe preg_replace() bzw. eregi_replace()
    um aus einem string u.a. links und emails automatisch bzw. per bb-code zu verlinken. (genaugenommen hab ich se aus diesem forum zusammengeklaut, die autoren stehen im quelltext keine sorge - falls jemandem der code bekannt vorkommt )

    bei einigen davon gibts allerdings einen fehler:
    1.)
    Code:
    $string = preg_replace("§(?<!(\]|=|"|>))(http://)([;_=\-\#\?\/\&a-zA-Z0-9\.]*)§","<a target=\"_blank\" class=\"flink\" href=\"http://\\3\">\\3</a>",$string);
    $string = preg_replace("§(?<!(\]|=|"|>))(www.)([;_=\-\#\?\/\&a-zA-Z0-9\.]*)§","<a target=\"_blank\" class=\"flink\" href=\"http://\\3\">\\3</a>",$string);
    $string = preg_replace("§(?<!(\]|=|"|>))(htts://)([;_=\-\#\?\/\&a-zA-Z0-9\.]*)§","<a target=\"_blank\" class=\"flink\" href=\"https://\\3\">\\3</a>",$string);
    $string = preg_replace("§(?<!(\]|=|"|>))(ftp://)([;_=\-\#\?\/\&a-zA-Z0-9\.]*)§","<a target=\"_blank\" class=\"flink\" href=\"ftp://\\3\">\\3</a>",$string);
    $string = preg_replace("/(?<!(\]|=|"|>))([A-Za-z0-9\.\-\_]{2,})(\@)([A-Za-z0-9\.\-\_]{3,})(\.)([A-Za-z]{2,3})\b/","<a href=\"mailto:\\0\">\\0</a>",$string);
    die liefern:
    Parse error: parse error in /var/www/web1131/html/betterw/include/funktionen.php on line xx



    2.)
    Code:
    $string = eregi_replace("\\[url=([^\\[]*)\\]([^\\[]*)\\[/url\\]","<a href=\"\\1\" target=\"_blank\" class="\"flink\">\\2</a>",$string);
    $string = eregi_replace("\\[url\\]([^\\[]*)\\[/url\\]","<a href=\"\\1\" target=\"_blank\">\\1</a>",$string);
    $string = eregi_replace("\\[email=([^\\[]*)\\]([^\\[]*)\\[/email\\]","<a href=\"mailto:\\1\">\\2</a>",$string);
    die liefern:
    Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /var/www/web1131/html/betterw/include/funktionen.php on line xx
    Parse error: parse error in /var/www/web1131/html/betterw/include/funktionen.php on line xx


    ich sehs einfach net...
    grüsse,
    sonja


  • #2
    zu 1.)
    $string = preg_replace("§(?<!(\]|=|"|>))(http://)([;_=\-\#\?\/\&a-zA-Z0-9\.]*)§","<a target=\"_blank\" class=\"flink\" href=\"http://\\3\">\\3</a>",$string);

    Dann auch vor " ein \ setzen...
    Im ersten Pattern beendest Du das Pattern mit "



    [Editiert von MelloPie am 04-03-2002 um 20:03]
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      Zu 2.) Die doppelten Backslashes durch einfache ersetzen.

      CAT Music Files

      Kommentar


      • #4
        die doppelten "\" hatt ich schon weg - interessiert ihn nicht, class="\"flink\" wars - ein " zuviel. trotzdem thx, ohne deinen einwand hätt ich nicht nochmal nach \ gesucht...

        jedenfalls ein dickes danke euch beiden, jetzt passts...

        alles liebe,
        sonja

        Kommentar

        Lädt...
        X