PHP - 结束结束DIV标记

时间:2012-08-02 10:26:26

标签: php html

我需要为下面的代码

找出结束标记
<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中实现吗?

2 个答案:

答案 0 :(得分:1)

您可以使用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();

答案 1 :(得分:0)

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

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

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

array_pop($div_array);

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

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