例如我有这种内容
<div id="t1" class="tt" tag='t2"><div class="t3">tee</div><a href='#'>test</a><span>test</span><div>asdf</div></div>
<div id="t1" class="tt" tag='t2"><div class="t3">tee</div><a href='#'>test</a><span>test</span><div>asdf</div></div>
我正在尝试使用preg_match来获取父div之间的内容,因此这里的父div表示<div id="t1"
。我使用preg_match还是有其他方法来获取这些div之间的数据?
答案 0 :(得分:5)
正则表达式是这项工作的错误工具。你想要一个DOM解析器。
$dom = new DOMDocument;
$dom->loadHTML($html);
$t1 = $dom->getElementById('t1');
echo $t1->nodeValue;
这只会返回文本,如果你想要innerHTML
,请尝试:
$dom = new DOMDocument;
$dom->loadHTML($html);
$t1 = $dom->getElementById('t1');
$innerHTML = '';
foreach($t1->childNodes as $child){
$innerHTML .= $dom->saveHTML($child);
}
echo $innerHTML;
答案 1 :(得分:1)
请勿尝试使用正则表达式解析HTML:Using regular expressions to parse HTML: why not?
这样的PHP DOM库