Php 如何获取所有未使用正则表达式链接的URL
我需要从给定的字符串中获取所有未链接的url(没有锚标记的url) 我知道正则表达式Php 如何获取所有未使用正则表达式链接的URL,php,regex,Php,Regex,我需要从给定的字符串中获取所有未链接的url(没有锚标记的url) 我知道正则表达式(http | ftp | https):/([\w-]+(?:(?:\.[\w-]+)+)([\w,@?^=%&:/~+-]*[\w@?^=%&/~+-]),从给定字符串获取所有URL 输入: <div class='test'> <p>Heading</p> <a href='http://www.google.com'>google</a> www
(http | ftp | https):/([\w-]+(?:(?:\.[\w-]+)+)([\w,@?^=%&:/~+-]*[\w@?^=%&/~+-]),
从给定字符串获取所有URL
输入:
<div class='test'>
<p>Heading</p>
<a href='http://www.google.com'>google</a>
www.yahoo.com
http://www.rediff.com
<a href='http://www.overflow.com'>www.overflow.com</a>
</div>
标题
www.yahoo.com
http://www.rediff.com
输出:
<div class='test'>
<p>Heading</p>
<a href='http://www.google.com'>google</a>
www.yahoo.com
http://www.rediff.com
<a href='http://www.overflow.com'>www.overflow.com</a>
</div>
敬请告知。简单使用即可获得href来源:
href='(.+?)'
使用库获取dom树html,并获取所有链接。 例如,您可以使用simplehtml
//从URL或文件创建DOM
$html=file\u get\u html('http://www.google.com/');
//查找所有链接
foreach($html->find('a')作为$element){
echo$element->href.
;
}
这种糟糕的方式。用regexp解析html 1)用DOM解析器解析html,2)删除所有锚定标记,3)收集URL。@WiktorStribiżew,我认为regex比DOM解析器快,因为我的输入总是字符串内容而不是html内容。你可以跳过:(?is)@raj试试这个(?更快并不意味着更安全。是的,(*SKIP)(*F)
应该可以。