Problemer med eregi_replace
Jeg bruger nedestående funktion til at læse en tekst igennem, lave mellemrum maito osv. Jeg har fornylig fået hjælp til at tilpasse den således at hvis der i teksten står <bil.jpg align=left>, så bliver dette lavet om til et korrekt tag <img src=grafik/bil.jpg align=left>Men det konflikter hvis der i samme tekst er en mail adresse eller andet der begynder med <, så forsøger funktionen at lave mailadressen om til et billede, som naturligvis ikke findes
Er der nogen der kan give en hjælpende hånd?
Funktionen:
<?
function string_tagster($str) {
$str = " ".$str." ";
$str = eregi_replace("([[:space:]{()\"'\[~#=;\&?\_-])((ftp|http|https|telnet|news|nttp|nntp|file):\/\/[a-z0-9~#%@¾¿Œ\&\(\):;=\?\/\.,_-]+(\\[|\\]|[a-z0-9~#%@¾¿Œ\&:;,=\?\/_\+-])+)", "\\1<a href=\"\\2\" target=\"_blank\">\\2</a>", $str);
$str = eregi_replace("([[:space:]{()\"'\[~#=;\&?\_-])(www\.[a-z0-9~#%@¾¿Œ\&\(\):;=\?\/\.,_-]+(\\[|\\]|[a-z0-9~#%@¾¿Œ\&:;,=\?\/_\+-])+)", "\\1<a href=\"http://\\2\" target=\"_top\">\\2</a>", $str);
$str = eregi_replace("([[:space:]{()\"'\[~#=;\&?\_-])([_\.0-9a-z-]+@([_\.0-9a-z-]+)+\.[a-z]{2,4})","\\1<a href=\"mailto:\\2\">\\2</a>", $str);
$str = preg_replace("/<([^ ]+) *([^ ]+)>/", "<img src=resize_image.php?image=/web/www.sktjohannes.dk/www/nygrafik/$1 $2 hspace=10 vspace=10>", $str);
return substr($str, 1);
}
function format_post2 ($str) {
$str = stripslashes($str);
$str = string_tagster($str);
$str = str_replace(" ", " ", $str);
$str = str_replace("\t", " ", $str);
$str = str_replace("\r", "", $str);
$str = str_replace("\n", "<br>", $str);
return $str;
}
?>
