是否有正则表达式,可以找到一个包含以http://或www开头的单词并用<a>$1</a>
换行的字符串?
谷歌搜索,但我似乎无法找到一个终极的。
另一个问题,如果它位于<img>
标签内,你能以某种方式让它忽略吗?
非常感谢!
答案 0 :(得分:8)
$text = trim($text);
while ($text != stripslashes($text)) { $text = stripslashes($text); }
$text = strip_tags($text,"<b><i><u>");
$text = preg_replace("/(?<!http:\/\/)www\./","http://www.",$text);
$text = preg_replace( "/((http|ftp)+(s)?:\/\/[^<>\s]+)/i", "<a href=\"\\0\" target=\"_blank\">\\0</a>",$text);
答案 1 :(得分:1)
祝你好运 - 找到开头很容易(大部分时间);找到了结局?祝你好运:
http://example.com/bob.jones.4.
http://example.com/bob.jones.4?
http://example.com/bob.jones.4!
http://stackoverflow.com/questions/1242733/make-links(oh-noes)
http://example.com/bob.'magic'.jones*2!
http://example.com/~(*)!
这些是有效的网址。请参阅RFC2396。但有时你想要拖尾标点符号,有时候你不需要。
/我想知道他可以使用带有(*')!
的网址,因为他知道RFC2396允许使用的网址。