什么是php里面的反向引用,关于preg_replace()函数反向引用用法的有关问题

这篇博客探讨了在PHP中使用preg_replace函数时遇到的问题,即如何将捕获的正则表达式组与数组键结合。作者提供了两种解决方案,一种是利用'e'修饰符在PHP 5.5以下版本,另一种是使用preg_replace_callback函数在PHP 5.3及以上版本。文章通过实例代码展示了如何正确地将匹配到的字符串作为数组键来获取对应的值。
摘要由CSDN通过智能技术生成

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

$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;

相关文章

相关视频

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值