2013-07-02 107 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'值。我想'