$str='<div _data="111"></div><div _data="222"></div><div _data="333"></div>';$a=preg_replace('/\_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"; }
没有看出两个结果的区别!
$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; }
$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; }
$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; }