我正在尝试从字符串中获取网址,我有这个
$link_count = count(explode('http',$post));
if($link_count > 0){
preg_match_all("#https?://[^.\s]+\.[^\s]+#ix", $note, $matches);
foreach(){} etc..
}
这里的问题是我也希望能够检测到这样的URL; http://www.link.com或www.link.com或link.com Ps:我在这里搜索过类似的问题,但我还没有看到一个可以解决所有这些类型的URL的问题。
谢谢。
答案 0 :(得分:2)
尝试
"/\b((http(s)?:\/\/)?(www\.[a-zA-Z0-9\/\\\:\?\%\.\&\;=#\-\_\!\+\~\,]*))/is
正如马里奥所说,没有协议前缀的链接在技术上不是链接。
答案 1 :(得分:1)
试试这个正则表达式:
#(https?://)?([a-z0-9-]+\.)+[a-z0-9]+/?#i