str_replace怎么替换多个关键字?

如题所述

不同的值进行替换要多次使用str_replace,而对于同一个值想要多次替换只需写一个。
str_replce
用法
str_replce($a,$b,$c);
从变量$c的值中寻找$a(服务器会把$a换成它的值),如果找到了就把它替换成$b(同样系统会将$b看成的值进行替换,而不是仅替换成函数名)也就是说$a是原字符串,$b是新字符串,$c是要被搜索的字符串,整个函数返回的值是替换后的$c的值(注意,是替换后的$c)
对于你的情况用这种方法有点麻烦,可以用strtr()进行替换,注意,最好用上数组,像这样
$a=array('a'=>'1','b'>='2','c'=>'3','d'=>'4');
$b='abcdefgabw';
echo
strtr($b,$a);
显示结果为
1234efg12w
也就是说如果strt的第二个参数是数组,那第三个参数可以留空,替换法则为将数组的键名替换成其对应的值,就是a替换成1,b换成2等等。
当然$a可以为字符串,比如$a='a';就需要这样写strtr($b,1,$a)那样就直接把1替换成字符a了,但是这样很容易出问题。
用正则替换
preg_replace('/[$find1|$find2|$find3]/',replace,string,count)
或者用一个循环来处理
$find_list
=
array($find1,$find2,$find3)
foreach($find_list
as
$find)
{str_replace(find,replace,string,count)
温馨提示:答案为网友推荐,仅供参考