PHP获取html

时间:2015-10-20 15:19:32

标签: php html regex

我尝试使用此

获取html中的iframe的src
preg_match('/src=\'([^\']+)\'/', $fresult, $match);

但这段代码有时会失败。

有些人认为我使用的是DomDocument但是我找不到一个reg exp样本

$doc = new DOMDocument();
$doc->loadHTML($html); 
foreach ($tags as $tag) {
    echo $tag->nodeValue;
}

如何获取帧的src值?

样本

<iframe src='test.com' />

我应该有test.com

我怎么做preg_match_all相当于DomDocument?

像这样

<html>
<label class="su">test1</label>
<label class="su">test2</label>
<label class="su">test3</label>
</html>

我应该有test1,test2和test3的数组结果

我是这个dom php的新手。所以请不要苛刻。感谢

1 个答案:

答案 0 :(得分:3)

首先,欢迎来到Stack Overflow!请不要在DOM文档上使用正则表达式(请参阅此处why)。相反,请坚持PHP DomDocument

也就是说,你可能会得到一个iframe标签和src:

$doc = new DOMDocument();
$doc->loadHTML(...); 
$frame= $doc->getElementsByTagName('iframe')->item(0);
$src = $frame->getAttribute('src');

关于第二个问题,您可能需要查看DOMXPath

$doc = new DOMDocument();
$doc->loadHTMLFile(...);

$xp = new DOMXPath($dom);
$labels = $xp->query('//label[@class="su"]');