如何仅从包含HTML标记的字符串中获取URL

时间:2013-10-20 21:54:10

标签: php html regex preg-match preg-match-all

我这里有这个代码,用于检测包含HTML内容的字符串中的URL

$regex = "/(http|https)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";
                preg_match_all($regex, $desc, $url);
                print_r($url);

代码效果很好,但print_r($url)会返回以下网址:

http://url.com/</p>

</p>只是关闭<p>标记,但我不希望它在我的网址中。

我怎么能阻止它呢?

谢谢, 彼得

1 个答案:

答案 0 :(得分:0)

我使用strip_tags函数删除所有HTML标记,然后preg_match_all()以获取每个网址:

$regex = "/(http|https)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";
preg_match_all($regex, strip_tags(html_entity_decode($desc)), $url);
print_r($url);

我希望将来能帮助别人!

彼得