Hej
Jag har försökt fixa så webbadresser i en text ska bli länkar när man skriver ut den.
Jag har sökt här på forumet och försökt med lite som andra säger funkar.
Så om någon kan hjälpa mig skulle jag bli glad.
6 svar · 350 visningar · startad av greyhound
Hej
Jag har försökt fixa så webbadresser i en text ska bli länkar när man skriver ut den.
Jag har sökt här på forumet och försökt med lite som andra säger funkar.
Så om någon kan hjälpa mig skulle jag bli glad.
Det smidigaste är att använda reguljära uttryck (regular expressions). Prova att söka på det. Är säker på att det finns en uppsjö med färdiga skript att använda.
stiglennart skrev:
Det smidigaste är att använda reguljära uttryck (regular expressions). Prova att söka på det. Är säker på att det finns en uppsjö med färdiga skript att använda.
Oj glömde skriva det. Men det är med preg_replace som jag har försökt så jag har redan kollar på dom. Men dom funkar inte för mig det är det som är problemet.
Prova detta,
function linksAndHTMLEntities($str){
preg_match_all ("|[url]http://[/url][^>\s\"\']+|is", $str, $match);
$urls = array_unique($match[0]);
$str = niceHTMLEntities($str);
foreach($urls as $url){
$tmp = htmlentities($url);
$str = str_replace($tmp, "<a href='$tmp' target='_blank'>$tmp</a>", $str);
}
return $str;
}
Denna kod brukar jag använda
$text = preg_replace( '/(?<!"|href=|href\\s=\\s|href=\\s|href\\s=)(http|ftp|https):\\/\\/[\\w]+(.[\\w]+)([\\w\\-\\.,@?^=%&:\\/~\\+#]*[\\w\\-\\@?^=%&\\/~\\+#])?/i', "<a href=\"$0\" title=\"$0\" target=\"_blank\">$0</a>", $text );
$text = preg_replace('/(?<!"|href=|href\\s=\\s|href=\\s|href\\s=)(?<!:\\/\\/)www(.[\\w]+)([\\w\\-\\.,@?^=%&:\\/~\\+#]*[\\w\\-\\@?^=%&\\/~\\+#])?/i', "<a href=\"http://$0\" title=\"http://$0\" target=\"_blank\">$0</a>", $text );
Pedda skrev:
Denna kod brukar jag använda
$text = preg_replace( '/(?<!"|href=|href\\s=\\s|href=\\s|href\\s=)(http|ftp|https):\\/\\/[\\w]+(.[\\w]+)([\\w\\-\\.,@?^=%&:\\/~\\+#]*[\\w\\-\\@?^=%&\\/~\\+#])?/i', "<a href=\"$0\" title=\"$0\" target=\"_blank\">$0</a>", $text ); $text = preg_replace('/(?<!"|href=|href\\s=\\s|href=\\s|href\\s=)(?<!:\\/\\/)www(.[\\w]+)([\\w\\-\\.,@?^=%&:\\/~\\+#]*[\\w\\-\\@?^=%&\\/~\\+#])?/i', "<a href=\"http://$0\" title=\"http://$0\" target=\"_blank\">$0</a>", $text );
Den där funkade!!
Tackar