您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

关于preg_replace()函数反向引用用法的问题

2024/6/4 2:08:10发布29次查看
$array1=array( array('id'=>'1','name'=>'小王'), array('id'=>'2','name'=>'小李') );$stra='aa name cc dd';$strb='/\s+(\w+)\s+/i';$html=preg_replace($strb, $array1[0][‘${2}’], $stra);echo $html;
如上面所示返向引用${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;
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product