str_replace()不会替换每个occuurence

时间:2012-09-26 05:34:56

标签: php str-replace

我意识到我对str_replace()有一些奇怪的问题,它似乎没有用$ replace替换$ search的每次出现,即使我没有指定$ count变量...... 我的代码

    echo "head_title_array ".html_entity_decode($head_title_array['title'])."\n\n";
    $Mytitle = strtolower(str_replace(" ", "_", html_entity_decode($head_title_array['title'])));
    echo "Mytitle ".$Mytitle;

和输出:

      head_title_array Stay & play golf packages

      Mytitle stay_& play_golf_packages

为什么?我希望$ Mytitle的值为“ stay_& _play_golf_packages ”。 这是怎么回事?

任何帮助表示赞赏!!!

2 个答案:

答案 0 :(得分:2)

你的字符串中可能有unicode spaces

可能的解决方案是使用preg_replace

preg_replace('/\p{Zs}/u', '_', $your_string);

Unicode character properties

答案 1 :(得分:0)

那些不是空格。尝试替换 和0xA0。