如何检测不包含http://
的文字区域中的网址?以下是输入的示例:
你好兄弟!看看我的新网站:www.example.com。我试图从http://another.example.net和example.net构建网站。
有没有办法将其转换为此代码?:
Hi bro! Look at my new website: <a href="http://www.example.com">www.example.com</a>.
I leard to build websites from <a href="http://another.example.com">http://another.example.net</a>
and from <a href="http://example.net">example.net</a>.
正如您所看到的,代码会检测是否存在URL,即使它不是以http://
或www
开头,也会将a
标记添加到{{1 }}
答案 0 :(得分:1)
请参阅此基本示例。它允许您匹配多行文本,并且不会限制太多。您可以拥有指向内部网络的链接,其中使用的机器主机名如下:http://myspecialserver
- 这是有效链接,无论它是否只能由某些网络访问。
anwser使用正则表达式。您可以在此处详细了解它们:http://www.tutorialspoint.com/php/php_regular_expression.htm
我们与它们匹配协议以及之后与URL一致的任何文本,它不包含空格字符,制表符,回车符和换行符。
<?php
function linkify($text) {
return preg_replace('#\b(http|ftp)(s)?\://([^ \s\t\r\n]+?)([\s\t\r\n])+#smui', '<a href="$1$2://$3">$1$2://$3</a>$4', $text);
}
echo nl2br(linkify('
Hello, visit https://www.domain.com
We are not partners of http://microsoft.com/ :)
Download source from: ftp://new.sourceforge.com
'));
?>