我想知道是否有一个简单的代码片段可以转换任何类型的链接:
http://www.cnn.com to <a href="http://www.cnn.com">http://www.cnn.com</a>
cnn.com to <a href="http://www.cnn.com">cnn.com</a>
www.cnn.com to <a href="http://www.cnn.com">www.cnn.com</a>
abc@def.com to to <a href="mailto:mailto:abc@def.com">mailto:abc@def.com</a>
Run Code Online (Sandbox Code Playgroud)
我不想使用任何PHP5特定的库.
感谢您的时间.
更新我已将上述文本更新为我想要转换为的内容.请注意,案例2和3的href标签和文本不同.
UPDATE2怎么做gmail聊天呢?他们很聪明,只适用于真实域名.egaly工作,但a.cb不起作用.
我有一个用PHP编写的Web应用程序.我想在用户评论中找到所有网址,并将其更改为可点击的链接.我搜索了很多网站和页面,发现下面的解决方案(不幸的是我没有找到它的参考链接):
<?php
function convert($input) {
$pattern = '@(http)?(s)?(://)?(([a-zA-Z])([-\w]+\.)+([^\s\.]+[^\s]*)+[^,.\s])@';
return $output = preg_replace($pattern, '<a href="http$2://$4">$0</a>', $input);
}
?>
Run Code Online (Sandbox Code Playgroud)
这段代码完全归功于它的作者.但我发现其中有一个我无法解决的错误.
如果检测到的URL开始小号字母(无HTTPS),该HREF值不会有š性格和HTTP将变更为HTTPS,而内部的文字是正确的.
示例:
source.com >><a href="https://ource.com">source.com</a>
你有解决这个bug的任何解决方案吗?