例如,我有这种内容
<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>
Run Code Online (Sandbox Code Playgroud)
我试图使用preg_match来获取父div之间的内容,所以这里父div意味着<div id="t1".我使用preg_match还是有其他方法来获取这些div之间的数据?
正则表达式是这项工作的错误工具.你想要一个DOM解析器.
$dom = new DOMDocument;
$dom->loadHTML($html);
$t1 = $dom->getElementById('t1');
echo $t1->nodeValue;
Run Code Online (Sandbox Code Playgroud)
这只会返回你的文字,如果你想要innerHTML,试试这个:
$dom = new DOMDocument;
$dom->loadHTML($html);
$t1 = $dom->getElementById('t1');
$innerHTML = '';
foreach($t1->childNodes as $child){
$innerHTML .= $dom->saveHTML($child);
}
echo $innerHTML;
Run Code Online (Sandbox Code Playgroud)