str_replace怎么替换多个关键字?

内容中有多个关键字,但需要各换各的。如a换成1,b换成2,c换成3,d换成4。这样可以实现么?小弟刚学php,还没入门,不知道问题是不是很傻。另外什么循环之类的,也只是听... 内容中有多个关键字,但需要各换各的。如a换成1,b换成2,c换成3,d换成4。这样可以实现么?小弟刚学php,还没入门,不知道问题是不是很傻。另外什么循环之类的,也只是听过,啥都没明白,也许是需要用循环操作来替换? 展开
 我来答
抹布_男
2014-10-08 · 超过55用户采纳过TA的回答
知道小有建树答主
回答量:139
采纳率:0%
帮助的人:67.5万
展开全部
不同的值进行替换要多次使用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了,但是这样很容易出问题,就不一一列举了
1633602558
推荐于2018-01-02 · TA获得超过268个赞
知道小有建树答主
回答量:185
采纳率:71%
帮助的人:38.1万
展开全部

这种替换用循环效率太差了,你按照我下面的方法试下,我用JS语法给你提供一下思路,你自己用php模仿修改一下。

function R(key) {
  var $S = { A:"11", B:"22", C:"33", D:"44", E:"55", F:"66" };
  return ($S[key] ? $S[key] : key);
};
var text = "A测B试C一D下E".replace(/(A|B|C|D|E|F)/g, function($1){return R($1)} );
alert( text )

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
最初8956
2018-04-08 · TA获得超过959个赞
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部

不同的值进行替换要多次使用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)

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式