替换php中嵌套标签中的Text


Replace Text from nested tags in php

我需要替换一些文本。为此,我需要一个regexp模式。文本如下:

<div CLASS="CHAP_BM_CON">Outer <div CLASS="CHAP_BM_FIRST">DIV inner</div> 
Outer ends here</div><div CLASS="CHAP_BM_FIRST">Separate DIV Even inner</div>

在上面的段落中,我们可以看到一个嵌套的DIV.我需要reg-exp模式来满足下面的输出,如下所示:

<div CLASS="CHAP_BM_CON">Outer <div CLASS="CHAP_BM_FIRST">DIV inner <!--CHAP_BM_FIRST--></div> 
Outer ends here<!--CHAP_BM_CON--></div><div CLASS="CHAP_BM_FIRST">Separate DIV Even     inner<!--CHAP_BM_FIRST--></div>

我们如何为这种情况编写regexp?

我尝试了以下代码。。

<?php
function parseTagsRecursive($input)
{
 $regex = '/<div tagname="(.*?)" (.*?)>(.*?)<'/div>/si';    
if (is_array($input)) {
    $input = '<div tagname='.$input[1].' '.$input[2].'>'.$input[3].'<!--'.$input[1].'--></div>';
}   
return preg_replace_callback($regex, 'parseTagsRecursive', $input);
}
$content = '<div CLASS="CHAP_BM_CON">Outer <div CLASS="CHAP_BM_FIRST">DIV inner</div> 
Outer ends here</div><div CLASS="CHAP_BM_FIRST">Separate DIV Even inner</div';

echo $ver = parseTagsRecursive($content);