PHPでstr_replaceが動かない


スポンサーリンク

PHPを書いていると頻繁にstr_replaceを使用します。ただ、全角文字などが混ざっていると、うまく動いてくれないことがあります。そのようなときは、まず最初に「文字コード」について疑いましょう。

PHPはUTF-8で動いていたりしますが、str_replaceの引数にSJISとUTF-8を混ぜてしまうと、動かなくなる場合があります。具体的にどうすればよいかというと、

$after = mb_convert_encoding($before,"UTF-8","SJIS"); //SJIS(ANSI)からUTF-8
$after = mb_convert_encoding($before,"SJIS","UTF-8"); //UTF-8からSJIS(ANSI)

を駆使して、文字コードに整合性を持たせた状態で置換します。
かなりハマりやすいポイントだと思うので、備忘録に書きました。

それでは、ご覧いただきありがとうございました。

last

フォローする