BBCode - Urls umwandeln

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

  • BBCode - Urls umwandeln

    Hallo,
    ich habe ein kleines Problem mit dem umwandeln von BBCodes
    und zwar ist folgendes Möglich
    [ U R L ] http://www.url.de [ / U R L ]
    [ U R L =http://www.url.de]text [ / U R L ]

    ich verwende zum umwandeln diesen code
    PHP-Code:
    //Internet Links
    $text preg_replace("#\[url=(.*?)\](.*?)\[/url\]#is","<a href=\"\\1\" target=\"_blank\">\\2</a>",$text);
    $text preg_replace("#\[url](.*?)\[/url\]#is","<a href=\"\\1\" target=\"_blank\">\\1</a>",$text); 
    wenn nun aber kein "http://"...gehts nicht mehr
    ich muss das also irgendwie überprüfen und wenn "http://" nicht
    davorsteht anfügen...ich hab aber keine ahnung wie das geht
    kann mir da jemand weiterhelfen?

    Zusätzlich bin ich auf der Suche nach einer Möglichkeit einen PHP BBCODE
    zu realisieren (mit syntaxhighlighting) was da jemand wo sowas finde?

    gruß Micha

  • #2
    warum prüfst du nicht bei der eingabe, ob http:// vorangestellt ist und ergänzt es, falls notwendig?

    strstr() ist dein freund
    Kissolino.com

    Kommentar


    • #3
      warum nicht beides kombinieren, und http(s):// als zusätzlichen, optionalen muster-bestandteil mit in den suchausdruck aufnehmen?

      (dann entweder bei der benutzung der backreferences eine nummer weiter gehen, oder gleich dafür sorgen, dass keine BR erzeugt wird.)
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        Re: BBCode - Urls umwandeln

        Original geschrieben von mk85
        [ ... ]wenn nun aber kein "http://"...gehts nicht mehr
        ich muss das also irgendwie überprüfen und wenn "http://" nicht
        davorsteht anfügen...
        PHP-Code:
        //Internet Links
        $text preg_replace("#\[url=(.*?)\](.*?)\[/url\]#isU","<a href=\"http://\\1\" target=\"_blank\">\\2</a>",$text);
        $text preg_replace("#\[url](.*?)\[/url\]#isU","<a href=\"http://\\1\" target=\"_blank\">\\1</a>",$text);
        $text str_replace ('http://http://''http://'$text); 

        Kommentar


        • #5
          eigentich wollte ich alles mit den RegEx machen... aber so ists
          auch einigermaßen schöner weg

          danke
          meikel

          Kommentar

          Lädt...
          X