在php中替换字符串中的字符

时间:2018-04-11 23:05:11

标签: php

我想不出一个好的问题标题但我的问题是我必须替换字符串中的某些字符但不想替换已经替换的字符,例如,

 $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;
}

2 个答案:

答案 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);