2012-01-12 65 views
2

美好的一天!Get All Anchor Tags

我的正则表达式真的很糟糕,我想请求帮助我的项目。

我有我从其他网站抓取的内容,我想获得所有具有此字符串的锚标签。

target="_blank" 

我该如何做到这一点?任何建议将不胜感激。

感谢

+1

[不要试图在任意HTML上使用正则表达式](http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags#answer-1732454),你可以在符合特定templ的HTML上摆脱它吃了,但是“从其他网站抓取的内容”并不安全。 – Quentin 2012-01-12 07:24:41

+0

我有适合特定模板的HTML。谢谢你的快速反应。 – acidpaul 2012-01-12 07:30:19

回答

1
 

$dom = new DOMDocument(); 
$dom->loadHtml($yourCobtent); 

$xpath = new DOMXpath($dom); 
$yourAnchors = $xpath->query('//a[@target="_blank"]'); 
 
+0

可能要将'DOMXPath :: query()'的返回值分配给 – Phil 2012-01-12 07:39:52

+0

编辑的内容,谢谢指示 – 2012-01-12 07:41:33

2

正如在评论中提到的,正则表达式是不是这里的答案。

使用DOM和XPath达到你想要

$doc = new DOMDocument; 
$doc->loadHTMLFile('http://www.example.com/some-file.html'); 

$xpath = new DOMXPath($doc); 
$anchors = $xpath->query('//a[@target="_blank"]');