Php 如何仅从带有HTML标记的字符串获取URL

Php 如何仅从带有HTML标记的字符串获取URL,php,html,regex,preg-match,preg-match-all,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)返回的url如下: http://url.com/</p> htt

我这里有一段代码,它检测包含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)
返回的url如下:

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

只是用来关闭
标记,但我不希望它出现在我的URL中

我怎么能阻止它

谢谢,
Peter

我使用
strip\u tags
函数删除所有HTML标记,然后
preg\u match\u all()
获取每个URL:

$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);
我希望这有助于其他人在未来


Peter

首先解析HTML,然后在文本上运行链接查找器?我将如何解析HTML?我想我将使用strip_tags函数。我试试看