是否可以从网页中提取所有iframe标记

时间:2013-07-02 07:38:57

标签: php xpath domdocument

我不知道是否可能。有一个网页有这么多<iframe>标签(youtube,facebook等视频嵌入)这样的

<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>

我想做以下

我提供了网页的网址,并将所有<iframe> ... </iframe>代码重新包含在内。

我怎么能在php中做到这一点。

1 个答案:

答案 0 :(得分:2)

此处不需要xpath。您可以使用DOMDocument::getElementsByTagName('iframe');。检查问题(thx)下方@Bamar的评论。我希望在没有xpath的情况下使用DOM更快。

但是我会保留原始的xpath答案以供参考。


原始回答

使用以下xpath查询:

//iframe

它将选择文档中的所有<iframe>标记,无论它们在文档树中的位置如何。

示例:

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

$selector = new DOMXPath($doc);

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