Hvorfor virker det ik?
Hej, jeg har lige her for 10 min. siden fået sådan et script, der farver alt tekst rødt, imellem <?php og ?> i et forum. Det virker osse jeg kan bare ikke få det til at virke, når der samtidig er en funktion til at highlighte URLs. Her er koden:<?php
function tagster_url($str, $target, $css_class) {
$ins_str = "";
if ($css_class) $ins_str .= " class=\"".$css_class."\"";
if ($target) $ins_str .= " target=\"".$target."\"";
# Preg Replace til at omdanne text til URLs
$str = tagster_expand($str);
$str = preg_replace ("/(ftp|http|https|telnet|news|nntp|file|irc):\/\/([a-z0-9~#%@&:;=!',_æøå\(\)\?\/\.\-\+\[\]\|\*\$\^\{\}]+)/i", "<a href=\"\\1://\\2\"".$ins_str.">\\1://\\2</a>", $str);
$str = preg_replace ("/(\s|tp\:|\(|\[|\>)(www\.)([a-z0-9~#%@&:;=!',_æøå\(\)\?\/\.\-\+\[\]\|\*\$\^\{\}]+)/i", "\\1<a href=\"http://\\2\\3\"".$ins_str.">\\2\\3</a>", $str);
$str = preg_replace ("/(\s|tp\:|\(|\[|\>)(ftp\.)([a-z0-9~#%@&:;=!',_æøå\(\)\?\/\.\-\+\[\]\|\*\$\^\{\}]+)/i", "\\1<a href=\"ftp://\\2\\3\"".$ins_str.">\\2\\3</a>", $str);
$str = preg_replace ("/([\s\"])([\w\.\-_]+)@([\w\-_]+)\.([\w\.\-_]+)/i", "\\1<a href=\"mailto:\\2@\\3.\\4\"".$ins_class.">\\2@\\3.\\4</a>", $str);
# Array med smileys
$smilearray = array(":-)", ":)", ";-)", ";)");
# Array med billederne til smileys
$smilebil = array(
"<img src=\"Forside/Billeder/LogoSnuseren.gif\">",
"<img src=\"Forside/Billeder/LogoSnuseren.gif\">",
"<img src=\"Forside/Billeder/LogoSnuseren.gif\">",
"<img src=\"Forside/Billeder/LogoSnuseren.gif\">"
);
# Str Replace til smileys :-)
$str = str_replace($smilearray, $smilebil, $str);
# Farver hvis det er programmering
$str = str_replace("<","<", $str);
$str = str_replace(">",">", $str);
$str = str_replace("<?php","<font color=\"red\"><?php", $str);
$str = str_replace("?>","?></font>", $str);
# Til str
return tagster_reduce($str);
}
function tagster_expand($str) {
return " ".$str." ";
}
function tagster_reduce($str) {
return substr($str, 1, -1);
}
# Selve tekststrengen
$tekst = "<?php echo "hej" ?>";
echo tagster_url($tekst,"_blank","myclass");
?>
Hvad kan der være galt ??
MVH
Anders
