PHP——结束DIV标记

PHP——结束DIV标记,php,html,Php,Html,我需要计算以下代码的结束标记 <div class="emph"><div class="level"> Some testing </div></div> 一些测试 在这里,我需要为父DIV找到正确的标记。我的目标是在结束DIV之前添加类名,如下所示 <div class="emph"><div class="level"> Some testing <!--level--></div><

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

<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();
$dom=新的DOMDocument;
$dom->loadXML($xml);
$divs=$dom->getElementsByTagName('div');
foreach($div作为$div){
如果($div->getAttribute('class')!=“”){
$div->nodeValue=$div->nodeValue';
}
}
echo$dom->saveXML();

在PHP中打印
div
时,保留一个数组
$div\u array=array()

一旦你开了一个部门,就要做:

array_push($div_array, 'emph'); // or 'level' depending on the classname
准备好打印结束标记后,通过以下方式询问最后一个div的值:

array_pop($div_array);

// for example
echo '<!-- '.array_pop($div_array).' -->';
array\u pop($div\u array);
//比如说
回声';

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

你为什么要这样做?注释应该有助于注释源代码,而不是呈现给浏览器的输出。伙计们,这是我的要求。我们正在做一些处理,一旦我们能够实现它。因此,我只想找到确切的收尾div。在这里,我刚刚添加了注释一个例子。谢谢你的快速回复。但我无法达到这样的目标一些测试到底是什么问题?当然,除此之外,它需要有效的XML.buddy,感谢您的回复。。你能告诉我怎么打印吗?。。我不明白这里的意思。也许
echo
-ing是一种更合适的表达方式,而不是
print