如上面所示返向引用${2}如下这么写是没问题的:
$html=preg_replace($strb, ‘${2}’, $stra);
但是,如果我想把这个引用过来的字符串当作数组的键名,如$array['${1}']!。就会报错。如何解决这个问题呢?
notice: undefined index: in f:\web\wwwroot\cms\templateclass.php on line 236
回复讨论(解决方案) 对于 php5.5 一下,可以 $array1 = array( array('id'=>'1','name'=>'小王'), array('id'=>'2','name'=>'小李') ); $stra = 'aa name cc dd';$strb = '/\s+(\w+)\s+/ie';$html = preg_replace($strb, '$array1[0][$1]', $stra);echo $html;
对于 php5.3及以上,可以 $array1 = array( array('id'=>'1','name'=>'小王'), array('id'=>'2','name'=>'小李') ); $stra = 'aa name cc dd';$strb = '/\s+(\w+)\s+/i';$html = preg_replace_callback($strb, function($m) use ($array1) { return $array1[0][$m[1]];}, $stra);echo $html;
