php字符串替换为str_replace问题

时间:2012-10-26 23:12:11

标签: php string

我做了一个函数,通过从数组中添加新单词来替换字符串中的单词。

这是我的代码

function myseo($t){
    $a = array('me','lord');
    $b = array('Mine','TheLord');    
    $theseotext = $t;
    $theseotext = str_replace($a,$b, $theseotext);
    return $theseotext;
}

echo myseo('This is me Mrlord');

输出

  

这是我的MrTheLord

它应该是打印错误

  

这是我的Mrllord

因为单词(Mrlord)未包含在数组中。

我希望我能很好地解释我的问题。任何帮助人员

问候

3 个答案:

答案 0 :(得分:0)

根据代码它是正确的,但你希望它可以通过单词隔离。您可以简单地执行此操作:

function myseo($t){
    $a = array(' me ',' lord ');
    $b = array(' Mine ',' TheLord ');    
    return str_replace($a,$b, ' '.$t.' ');
}

echo myseo('This is me Mrlord');

请记住,这是一种廉价的黑客,因为我用空格包围替换字符串以确保双方都被考虑。这对于间断的字符串不起作用。替代方法是拆分字符串并单独替换每个单词。

答案 1 :(得分:0)

str_replace不会只查看完整的单词 - 它会查看任何匹配的字符序列。

因此,lord匹配Mrlord的后半部分。

答案 2 :(得分:0)

使用str_ireplace代替,它不区分大小写。