1

str_replace()に奇妙な問題があることに気付きました。$ count変数を指定していなくても、$searchのすべての出現箇所が$replaceに置き換えられないようです...私のコード

    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」になると思います。何が起きてる?

どんな助けでも大歓迎です!!!

4

2 に答える 2

2

おそらく、文字列にUnicodeスペースがあります。

あなたのための可能な解決策は使用することですpreg_replace

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

Unicode文字プロパティ

于 2012-09-26T05:44:30.260 に答える
0

それらはスペースではありません。 0xA0を置き換えてみてください。

于 2012-09-26T05:36:54.410 に答える