Jeg er ved at gå fuldstændig kold i det her.
Jeg bruger i forum følgende kode til at lave links på adresser. Nu kan jeg ikke bruge den til mail, da jeg selvfølgelig ikke kan vise links i et textarea. Problemet er at jeg ikke i denne kode kan se hvad der udskifter linieskift med <br>!!!
<?php
function formaterTekst($tekst, $target = "_blank", $tags = "<b><i>") {
$tekst = trim($tekst);
$tekst = ucfirst($tekst);
$tekst = strip_tags($tekst, $tags."<b><i>");
$tekst = str_replace("&", "&", $tekst);
$tekst = str_replace("mailto:", "", $tekst);
$tekst = formaterTekst_url($tekst, $target);
$tekst = formaterTekst_email($tekst);
$tekst = formaterTekst_orden_slutbogstav($tekst);
$tekst = str_replace(" ", " ", $tekst);
$tekst = str_replace("\t", " ", $tekst);
$tekst = str_replace("\r", "", $tekst);
$tekst = str_replace("\n", "<br>", $tekst);
return $tekst;
}
function formaterTekst_url($tekst, $target) {
$indsaet_attribut = "";
if ($target) $indsaet_attribut = " target=\"".$target."\"";
$tekst = formaterTekst_udvid($tekst);
$tekst = preg_replace ("/(ftp|http|https|telnet|news|nntp|file|irc):\/\/([a-z0-9~#%@&:;=!',_æøå\(\)\?\/\.\-\+\[\]\|\*\$\^\{\}]+)/i", "<a href=\"\\1://\\2\"".$indsaet_attribut."><span class=\"hyperlink\">\\1://\\2</span></a>", $tekst);
$tekst = preg_replace ("/(\s|tp\:|\(|\[|\>)(www\.)([a-z0-9~#%@&:;=!',_æøå\(\)\?\/\.\-\+\[\]\|\*\$\^\{\}]+)/i", "\\1<a href=\"
http://\\2\\3\"".$indsaet_attribut."><span class=\"hyperlink\">\\2\\3</span></a>", $tekst);
$tekst = preg_replace ("/(\s|tp\:|\(|\[|\>)(ftp\.)([a-z0-9~#%@&:;=!',_æøå\(\)\?\/\.\-\+\[\]\|\*\$\^\{\}]+)/i", "\\1<a href=\"
ftp://\\2\\3\"".$indsaet_attribut."><span class=\"hyperlink\">\\2\\3</span></a>", $tekst);
return formaterTekst_reducer($tekst);
}
function formaterTekst_email($tekst) {
$tekst = formaterTekst_udvid($tekst);
$tekst = preg_replace ("/([\s|\"])([\w|\.|\-|_]+)@([\w||\-|_]+)\.([\w|\.|\-|_]+)/i", "\\1<a href=\"mailto:\\2@\\3.\\4\"><span class=\"hyperlink\">\\2@\\3.\\4</span></a>", $tekst);
return formaterTekst_reducer($tekst);
}
function formaterTekst_orden_slutbogstav($tekst) {
$tekst = preg_replace ("/([\'\"\)\]\.\,\?\!]+)\">/i", "\">", $tekst);
$tekst = preg_replace ("/([\'\"\)\]\.\,\?\!]+)\" (target|class)=\"/i", "\" \\2=\"", $tekst);
$tekst = preg_replace ("/([\'\"\)\]\.\,\?\!]+)<\/a>/i", "</a>\\1", $tekst);
return $tekst;
}
function formaterTekst_udvid($tekst) {
return " ".$tekst." ";
}
function formaterTekst_reducer($tekst) {
return substr($tekst, 1, -1);
}
?>