就是去掉最外面的DIV
$str = '<div class="test" id="aaa">
测试文字
测试文字
测试文字<div class='a'>测试文字</div>
<span>测试文字</div>
测试文字
</div>
';
我要实现的就是去掉<div class="test" id="aaa"></div>这个最外面的标签,不过这只是一个例子而已,还可能有其他的,我说的是这个div的属性还有其他的,也就是说最外面的这个DIV的属性是不定了,可能有一个,可能有多个,也可能没有,而这个DIV包含的这段文字中也可能有div,不需要去掉,说简单点就是去掉最外层的DIV,不管这个最外层的DIV有多少属性都没影响!谢谢高手指点!

解决方案 »

  1.   


    $str =<<<txt
    <div class="test" id="aaa">
    测试文字
    测试文字
    测试文字<div class='a'>测试文字</div>
    <span>测试文字</div>
    测试文字
    </div>
    txt;preg_match_all('/^<div(.*)>(.*)<\/div>$/isU',$str,$match);
    echo "<pre>";
    print_r($match[2]);
    <pre>
    Array
    (
        [0] => 
    测试文字
    测试文字
    测试文字<div class='a'>测试文字</div>
    <span>测试文字</div>
    测试文字)
      

  2.   

    preg_match_all('#<div(.*?)>(.*)</div>#is',$str,$match);
      

  3.   

    $str =<<<EOT
    <div class="test" id="aaa">
    测试文字
    测试文字
    测试文字<div class='a'>测试文字</div>
    <span>测试文字</div>
    测试文字
    </div>
    EOT;
    echo preg_replace("/^<div[^>]+>(.+)<\/div>$/isU",'$1',$str);