我想不出一个好的问题标题但我的问题是我必须替换字符串中的某些字符但不想替换已经替换的字符,例如,
$s = "abcabacababbccc";
如果我必须将abc
替换为bcc
,将bc
替换为aa
,那么我应该
$s = "bccabacababaac";
但我得到一个不同的字符串作为输出,因为然后调用另一个替换函数它从一开始就开始搜索字符串,我应该避免它。我写过这段代码,如果有人能帮我解决的话。感谢
$_set = "abcacbabccbacab";
$_set = InvokeRule1($_set);
$_set = InvokeRule2($_set);
$_set = InvokeRule3($_set);
function InvokeRule1($set)
{
$check = false;
$set = str_replace("abc", "bcc", $set);
$check = true;
return $set;
}
function InvokeRule2($set)
{
$check = false;
$set = str_replace("bc", "aa", $set);
$check = true;
return $set;
}
答案 0 :(得分:2)
$trans = array("abc" => "bcc", "bc" => "aa");
echo strtr("abcabacababbccc", $trans); //=bccabacababaacc
答案 1 :(得分:-2)
尝试这样的事情:
$phrase = "abcabacababbccc";
$newPhrase = str_replace("abc", "BCC", $phrase);
$newPhrase2 = str_replace("bc", "AA", $newPhrase);
echo strtolower($newPhrase2);