获取PHP中特定链接的URL

时间:2010-11-15 00:15:49

标签: php regex

我有一个包含大量链接的文件:

<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并循环遍历所有内容,但我正在努力避免这种情况。

2 个答案:

答案 0 :(得分:1)

试试这个:

preg_match("(<a.*?href=[\"']([^\"']+)[\"'][^>]?>site 2</a>)i",$contents,$match);
$result = $match[1];

希望这有帮助!

答案 1 :(得分:0)

或者您可以尝试使用phpQuery