PHP——结束DIV标记


PHP -- Closing end DIV tag

我需要为下面的代码计算结束标记

<div class="emph"><div class="level"> Some testing </div></div>

在这篇文章中,我需要为父DIV找到正确的标签。我的目标是在结束DIV之前添加类名,就像下面的一样

<div class="emph"><div class="level"> Some testing <!--level--></div><!--emph--></div>

为此,我需要找到确切的关闭父DIV.

这可以在PHP中实现吗?

您可以使用simpleXML(或任何其他XML类)-对于每个div元素,读取它的类并在节点内容的末尾追加。它并不是准确地找到结束标记,而是实现了您指定的目标。

样本代码:

$dom = new DOMDocument;
$dom->loadXML($xml);
$divs = $dom->getElementsByTagName('div');
foreach ($divs as $div) {
    if ($div->getAttribute('class')!='') {
        $div->nodeValue = $div->nodeValue.'<!--'.$div->getAttribute('class').'-->';
    }
}
echo $dom->saveXML();

在PHP中打印divs时,保留一个数组$div_array = array()
一打开div do:

array_push($div_array, 'emph'); // or 'level' depending on the classname

一旦您准备好打印结束标记,就通过以下方式询问最后一个div的值:

array_pop($div_array);
// for example
echo '<!-- '.array_pop($div_array).' -->';

弹出数组还会删除数组的最后一个条目。我想这正是你想要的。