str_replace可以替换一个关键字,如果想分别替换多个关键字(例如在一个字符串中,把a替换b,把c替换d),除了循环str_replace之外,还有没有更有效的方法呢,最好是一个函数或者是一个正则替换的?

解决方案 »

  1.   

    <?
    $trans = array("a" => "b", "c" => "d");
    echo strtr("a c a c a c", $trans);?>
      

  2.   

    没有什么 更有效了 重复使用它str_replace() 例如:
     function safe_replace($string)
    {  
        $string = str_replace('*','',$string);
        $string = str_replace('"','&quot;',$string);
        $string = str_replace("'",'',$string);
      ...............
        return $string;  
    }
    你调用这个函数 就OK了 
      

  3.   

    额...如果有N个关键字要替换的,那不是要调用N此str_replace,我觉得这个很没效率才上来问下有什么好的方法的,除了一楼的就没别的方法了?
      

  4.   

    str_replace的参数是可以是数组的。比如:
    str_replace(array("a","b"),'x',$s);  //把a和b都替换成x
    str_replace(array('a','b'),array('x','y'),$s); //把a替换成x,把b替换成y
      

  5.   


    str_replace的参数是可以是数组的。比如:
    str_replace(array("a","b"),'x',$s); //把a和b都替换成x
    str_replace(array('a','b'),array('x','y'),$s); //把a替换成x,把b替换成y