Automatisch URLs verlinken / Problem: [IMG]-Tags

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

  • Automatisch URLs verlinken / Problem: [IMG]-Tags

    Ich nutze folgende funktion um URLs zu verlinken. Es soll einmal komplett automatisch gehen, dann mit [ URL ] und [/ URL ] und [ URL=...] ... [/ URL ].

    Mit dieser Funktion funktioniert das einwandfrei:
    PHP-Code:
    function parseLinks($text)
    {
      return  
    preg_replace(
         array(
           
    "/\[URL=http:\/\/(.*?)\](.*?)\[\/URL\]/si",
           
    "/\[URL=(.*?)\](.*?)\[\/URL\]/si",
           
    '/(?(?=<a[^>]*>.+<\/a>)
                 (?:<a[^>]*>.+<\/a>)
                 |
                 ([^="\']?)((?:https?|ftp|bf2|):\/\/[^<> \n\r]+)
             )/iex'
    ,
           
    '/<a([^>]*)target="?[^"\']+"?/i',
           
    '/<a([^>]+)>/i',
           
    '/(^|\s)([url]www.[/url][^<> \n\r]+)/iex',
           
    '/(([_A-Za-z0-9-]+)(\\.[_A-Za-z0-9-]+)*@([A-Za-z0-9-]+)
           (\\.[A-Za-z0-9-]+)*)/iex'
           
    ),
         array(
           
    "<a href=\"http://\\1\" target=\"_blank\">\\2</a>",
           
    "<a href=\"http://\\1\" target=\"_blank\">\\2</a>",
           
    'stripslashes((strlen("\\2")>0 ? "\\1<a 
    href=\"\\2\">".shortenLink("\\2")."</a>\\3" :" \\0"))'
    ,
           
    '<a\\1',
           
    '<a\\1 target="_blank">',
           
    'stripslashes((strlen("\\2")>0 ? "\\1<a 
    href=\"http://\\2\">".shortenLink("\\2")."</a>\\3" : "\\0"))'
    ,
           
    "stripslashes((strlen('\\2')>0 ? '<a href=\"mailto:\\0\">\\0</a>' : '\\0'))"
           
    ),
           
    $text
       
    );

    Leider werden auch Bilder verlinkt was ansich gut ist, solange man das bild nicht direkt einbinden will mit [ IMG ].

    Dann werden die URLs doppelt bearbeitet...

    Was kann ich dagegen tun?

    MfG Chris

  • #2
    ggf. testen, ob die URL in einem [ IMG ] tag drin ist. anderenfalls vorher alle urls in image-tags verändern, anschließend wieder zurückändern...
    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
    var_dump(), print_r(), debug_backtrace und echo.
    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

    Kommentar

    Lädt...
    X