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:
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
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
);
}
Dann werden die URLs doppelt bearbeitet...
Was kann ich dagegen tun?
MfG Chris
Kommentar