MMeleaMedlem sedan juli 20033 147 inlägg Frågan#1 Hejsan
Jag kör en liten funktion för att göra så att länkar automatiskt blir länkar.
function parser($text) {
$text = preg_replace("/((http(s?):\/\/)|(www\.))([\w\.\\:\\?\\~\\=\\&\-_\/]+)/i","<a href=\"http$3://$4$5\"><u>$2$4$5</u></a>",$text);
$text = preg_replace("/([\w\.\-_]+)(@)([\w\.\-_]+)/i", "<a href=\"mailto:$0\"><u>$0</u></a>",$text);
$text = strip_tags($text, '<a><i><u><b><object><param><embed>');
$text = preg_replace("'\[(b|i|u)\](.*?)\[\/\\1\]'is", "<$1>$2</$1>", $text);
$text = preg_replace("'\[(aqua|black|red|blue|fuchsia|gray|green|lime|maroon|navy|olive|purple|silver|teal|white|yellow)](.*?)\[\/\\1]'is", "<span style=\"color:$1\">$2</span>", $text);
return trim(stripslashes($text));
}
I samma funktion kör jag strip_tags(); som gör att jag tillåter viss html-kod, såsom att göra fet text, skriva egna länkar och infoga youtube-embeds.
Problemet när jag kör den här funktionen är att om jag infogar en youtubelänk som kan se ut såhär:
<object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/5XQ_GWKvDE0"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/5XQ_GWKvDE0" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object>
Nu blir det automatiskt länkar inne i min infogade youtube-text, om ni förstår vad jag menar.
Hur ska jag lösa detta?
Tack på förhand!
MmetalboyMedlem sedan jan. 2005953 inlägg Om du skriver så här så ändras inte de URL:er som har src=" eller value=" före sig.
$text = preg_replace('/(?<!src="|value=")((http(s?):\/\/)|(?<!http:\/\/)(www\.))([\w\.\\:\\?\\~\\=\\&\-_\/]+)/i',"<a href=\"http$3://$4$5\"><u>$2$4$5</u></a>",$text);
MMeleaMedlem sedan juli 20033 147 inlägg
metalboy skrev:
Om du skriver så här så ändras inte de URL:er som har src=" eller value=" före sig.
$text = preg_replace('/(?<!src="|value=")((http(s?):\/\/)|(?<!http:\/\/)(www\.))([\w\.\\:\\?\\~\\=\\&\-_\/]+)/i',"<a href=\"http$3://$4$5\"><u>$2$4$5</u></a>",$text);
Fungerar utmärkt! Stort tack! :bire (y)