关于preg_replace()函数反向引用用法的有关问题
程序员文章站
2022-04-29 11:08:29
...
关于preg_replace()函数反向引用用法的问题。
如上面所示返向引用${2}如下这么写是没问题的:
但是,如果我想把这个引用过来的字符串当作数组的键名,如$array['${1}']!。就会报错。如何解决这个问题呢?
Notice: Undefined index: in F:\Web\wwwroot\CMS\TemplateClass.php on line 236
------解决思路----------------------
对于 php5.5 一下,可以
对于 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($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;
相关文章
相关视频
上一篇: Python yield 使用浅析
下一篇: python中的yield使用方法