$a=preg_replace('/\s+\_data=[\"|\']([a-zA-Z0-9\_]+)([\s\"\']*)>/eis', "data_array('\\1')", $str);
die($a);
 
function data_array($key){
    $code=add_div($key);
    return $code;   
}
 
function add_div($v){   
      $value="><div id=\"$v\"></div>";
      return $value;   
}

解决方案 »

  1.   


    追问一下:如果我的html是这个形式,应该怎么改下$str='<div _data="111" class="aaa"></div><div _data="222" class="bbb"></div><p _data="333" class="ccc"></p>';想要的结果***********************************************************************************************************
    ***********************************************************************************************************
    <div class="aaa"><div id="111"></div></div>
    <div class="bbb"><div id="222"></div></div>
    <div class="ccc"><div id="333"></div></div>
      

  2.   

    $str='<div _data="111" class="aaa"></div><div _data="222" class="bbb"></div><p _data="333" class="ccc"></p>';$a=preg_replace_callback('/<(\w+)\s+\_data=[\"|\']([a-zA-Z0-9\_]+)([\s\"\']*)\s*class="(.+?)"><\/\1>/is', "data_array", $str);
    die($a);
      
    function data_array($key){
        $code=add_div($key[4], $key[2]);
        return $code;   
    }
      
    function add_div($class, $id){   
          $value="<div class=\"$class\"><div id=\"$id\"></div></div>";
          return $value;   
    }