2012-01-12 66 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"]');