问题描述
||
str_replace有奇怪的问题。
这是我的代码:
function replace_text($text) {
$array = array(
\':big\' => \'BIG\',\':bigs\' => \'BIIIGSS\',);
问题是当我输入bigs
(带有s)时,代码仅将文本转到BIGs
,而不是BIIIGSS
。
解决方法
好吧,大牌也可以匹配大牌,不是吗?更改顺序,以便检查大数是否首先匹配:
function replace_text($text) {
$array = array(
\':bigs\' => \'BIIIGSS\',\':big\' => \'BIG\',);
, 尝试使用不区分大小写的str_ireplace()
。
发生的情况是当它到达数组中的第二个元素时,值为BIGs
,因此小写字母bigs
不存在,因此没有被替换。
, 我怀疑这是您完整的代码,但仅仅是对多次调用str_replace
的函数的函数调用?
如果是这样,那么您可能首先进行第一个替换,因此字符串ѭ1now现在是BIGs
。然后运行第二个替换,但是现在您找不到小写字符串bigs
。
如手册所述,str_replace从左到右进行替换。