Hi,
auf meiner Webseite parse ich Links momentan nicht automatisch, sondern löse dies über einen noch nicht sehr guten
BBCode-Parser:
Code:
$text = preg_replace("/\[
url=(.*?)\](.*?)\[\/
url\]/sie", "generate_url('\\1','\\2')", $text);
Nun ist es so, dass In Kommentaren, die Benutzer schreiben, auch Links auftreten können. Es wäre schön, wenn diese Links auch anklickbar wären und mein Ansatz war dieser:
Code:
function parse_links($text)
{
$text = preg_replace('#(.*)\@(.*)\.([^\s(\)<>"\']*)#', '[email="\\1@\\2.\\3"]\\1@\\2.\\3[/email]', $text);
$text = preg_replace('=([^\s]*)(www.)([^\s(\)<>"\']*)=', '[
url="http://\\2\\3"]\\2\\3[/
url]', $text);
return $text;
}
Der erste reguläre Ausdruck ist für E-Mail-Adressen, also schaut euch den zweiten an. Das klappt soweit auch wunderbar, sofern nirgendwo etwas steht wie
Code:
[
url=www.foobar.net]
Wuppdi[/
url]
[img]http://www.foobar.de/blubb.png[/img]
Das gibt sonst natürlich ein Tag-Chaos, doch wie löse ich das Problem?