php - 为什么str_replace返回的数据错误
本文介绍了php - 为什么str_replace返回的数据错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
例:替换英文逗号,空格字符,或者中文逗号
$str = '正确,联系我们 goodsjob,goodsjob';
$reg = array(',',' ',',' );
$strs = 'username like %'.str_replace($reg,'%, or username like %',$str).'%';
返回的数据是:username like %正确%,%, or username like %or%, or username like %username%, or username like %like%, or username like %%联系我们%, or username like %goodsjob%, or username like %goodsjob%,为什么呢?
正确的结果应该是:usernme like %正确%, or username like %联系我们%, or username like %goodsjob%
解决方案
先把空格替换成其他字符 $str在替换的过程中,=》 %, or username like % ,这里面也存在满足你替换规则的字符串所以会影响到结果
$str = '正确,联系我们 goodsjob,goodsjob';
$str = str_replace(' ', ' ', $str);
$reg = array(',',','," ");
$strs = 'username like %'.str_replace($reg,'%, or username like %',$str).'%';
注意:
由于str_replace()函数替换左到右,它可能会进行多次替换时替换以前插入的值。
这篇关于php - 为什么str_replace返回的数据错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文