本帖最后由 panlvfei 于 2014-04-02 15:31:02 编辑

解决方案 »

  1.   

    $aa=preg_replace('/^(a)123(b)$/ie','"$1".$ih."$2"',$aa);
      

  2.   

    preg_replace('/^(a)*(b)$/i','$1'.$ih.'$2',$aa);
      

  3.   


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

  4.   

    修改规则 '$1'.$ih.'$2'
    实际传递给 preg_replace 的是 ‘$1100$2'
    于是 $1 和 $11 就产生了歧义
    所以需要人工将其区别开来 ‘${1}100$2'
    按你的格式就是 '${1}'.$ih.'$2'
    注意:不能使用双引号