PHP基本正则表达式

use*_*387 -1 php regex

例如,我有这种内容

<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之间的数据?

Roc*_*mat 5

正则表达式是这项工作的错误工具.你想要一个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)