2013-07-02 93 views
-2

我不知道它是否可行。還有就是我想要做的是有這麼多的標記的網頁(YouTube和Facebook等視頻嵌入)這樣是否有可能從網頁中拉出所有iframe標記

<iframe src="https://www.facebook.com/video/embed?video_id=483633655049394" 
width="680" height="450" frameborder="0"></iframe> 

<iframe width="680" height="450" src="http://www.youtube.com/embed/XpEnFZGkK8A 
frameborder="0" allowfullscreen=""></iframe> 

以下

我給的網頁的URL,並將其resturns我所有的<iframe> ... </iframe>標籤。

如何在php中做到這一點。

+4

'$文檔 - >的getElementsByTagName( 「IFRAME」)'應該這樣做。 – Barmar

+0

在Stackoverflow上,如果問題是可能的,它沒有任何意義。在programmig中,通常是這樣。所以你的問題的答案是肯定的。你可以通過編程來做到這一點。爲此使用XML/HTML解析器。 [解析和處理HTML/XML?](http://stackoverflow.com/q/3577641/367456) – hakre

回答

2

這裏不需要xpath。您可以使用DOMDocument::getElementsByTagName('iframe');。在問題(thx)下面檢查@Bamar的評論。我希望在沒有xpath的情況下使用DOM更快。

但是,我會保留原來的xpath答案作爲參考。


原來的答覆

使用下面的XPath查詢:

//iframe 

它會在文檔中選擇所有標籤無論其在文檔樹中的位置。

例子:

$doc = new DOMDocument(); 
$doc->loadHTML($yourhtml); 

$selector = new DOMXPath($doc); 

foreach($selector->query('//iframe') as $iframe) { 
    echo $iframe->getAttribute('src'); 
} 
+0

但我不想只獲取'src'值。我想'