我有一个包含大量链接的文件:
<a href="http://site1.com">site 1</a>
<a href="http://site2.com">site 2</a>
<a href="http://site3.com">site 3</a>
我想获取具有特定文本的链接的URL。例如,搜索“站点2”并返回“http://site2.com”
我试过了:
preg_match("/.*?[Hh][Rr][Ee][Ff]=\"(.*?)\">site 2<\/[Aa]>.*/", $contents, $match)
(我知道HREF =将是锚的最后一部分)
但它返回
http://site1.com">site 1</a><a href="http://site2.com
有没有办法向后搜索,或者其他什么?我知道我可以做preg_match_all并循环遍历所有内容,但我正在努力避免这种情况。
答案 0 :(得分:1)
试试这个:
preg_match("(<a.*?href=[\"']([^\"']+)[\"'][^>]?>site 2</a>)i",$contents,$match);
$result = $match[1];
希望这有帮助!
答案 1 :(得分:0)
或者您可以尝试使用phpQuery。