日期:2014-05-16  浏览次数:20369 次

preg_replace 替换值有子表达式值加数值问题
本帖最后由 panlvfei 于 2014-04-02 15:31:02 编辑
如下面简单的替换:
$ih=100;
$aa='a123b';
$aa=preg_replace('/^(a)123(b)$/i','$1'.$ih.'$2',$aa);
print_r($aa);
怎么结果就是不对,$ih变为字母就正常,数字的话会丢第一位和$1。在$1随便加个字母也正常,不会是我电脑问题吧?
------解决方案--------------------
$aa=preg_replace('/^(a)123(b)$/ie','"$1".$ih."$2"',$aa);

------解决方案--------------------

$ih=500;
$aa='a123b';
$aa=preg_replace('/^(a)123(b)$/i','${1}'.$ih.'${2}',$aa);
print_r($aa);