ereg_replace problem...

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

  • ereg_replace problem...

    hi!


    ich möchte in meinem Forum, dass Links automatisch umgewandelt werden.
    das hab ich so gelöst:
    eregi_replace("(http://[^ )\r\n]+)", "<a href=\"\\1\" target=\"_blank\">\\1</a>", $line);


    das funktioniert auch...
    nur kann es sein dass im String schon fertige links folgendes form sind:
    <a href="http://www.test.de">test.de</a>

    also möchte ich dass vor dem http:// kein Anführungszeichen " sein darf.
    das habe ich so versucht:
    eregi_replace("[^\"](http://[^ )\r\n]+)", "<a href=\"\\1\" target=\"_blank\">\\1</a>", $line);

    aber das funzt nur wenn der link nicht am ANFANG einer Zeile steht...
    wie macht man das richtig?

    danke!

  • #2
    preg_replace('/(<a\s(.*\s)?href=")?(http://[^\s"]+)/ie', '($1 ? "$1$2" : "<a href=\"$2\">$2</a>")', $line)

    preg_replace mit Modifier e: replacement = String mit korrektem PHP-Code (wie bei eval)
    Eine Beschreibung zum ?: - Operator gibt´s hier.
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar

    Lädt...
    X