うるおいらんど

アプリ開発やサイト制作のメモとか。

【PHP】str_replaceで指定した括弧[]や波〜などが置き換えられなかった話

魚ライン
魚ライン

どうもお久しぶりです。Reoです。

2ヶ月ぶりの更新・・・!ナンテコッタ

 

今日は慣れないPHP作業で、少し行き詰まった話をしていこうと思います。

 

とある文字列から特定の文字を置き換える時にstr_replaceという関数を用います。

例えば

この結果が2017/7/23・2017/7/24になって欲しいのに、そうならない時があるんですね。

 

わたしが引っかかったのは角括弧[]と波ダッシュ〜なんですが、こいつら同じ括弧や波に見えて、何種類か種類があるんですね。

HTML数値文字参照変換でチェックできるのですが、~と〜は違う波なんですね。

同様に、[と[は違う括弧なんですね。

括弧の方は違うってわかりますが、波はもう一緒じゃねーかって感じです・・・。

気になる人はwikiを見てみてください。括弧波ダッシュ

 

フォントが違えばさらにわかりづらくなるんですが、こいつらは別物として扱われてしまうので、〜を・に置き換えようとした時に、引っかからない・・・。

 

対応策は当てはまるまで試してみるしかワカラナイ!!

 

どっちも置き換え対象にしてやることでとりあえずは解決したんですが、こうするしかないのかしらん。

もっといい方法がありそうな気がするけれどどうなんでしょう。

 

文字コード問題なのでPHPに限らずなんでしょうが、見た目が同じでも実は別物の可能性があるということを覚えておこうと思います。

 

同様の問題に引っかかった方は、対応の文字とstr_replaceで置き換えようとしている文字の文字参照を調べてみてください〜〜。

str_replaceに限らず、strposとかexplodeとか文字判定を行うものだと同様の問題が起こるので、疑ってみてください。

 

 

 

2ヶ月ぶりの更新ですが別にサボってたわけじゃないですヨ!!!!!

リアルではとにかくメチャクチャいろんなことがあった気がします。

またしばらくはPC作業ができるので、ブログ更新頻度もぼちぼちあげていきます〜。

 

ではでは。

 

 

魚ライン
モッピー!お金がたまるポイントサイト
魚ライン

プログラミングの記事一覧を見る

コメント

コメントは認証制です。詳しくは下記の注意をお読みください。

コメントを残す

コメント時の注意

「Twitter」「Facebook」「Google+」「WordPress」のいずれかのアカウントをお持ちの方は各アカウントと連携することでコメントできます。 コメントしたことはSNSに流れませんので、アカウントをお持ちの方はこちらの方法でコメントを投稿して下さると嬉しいです。 アカウントをお持ちでない方はメールアドレスで投稿することができます。 初回コメント時は承認後に表示されます。

魚ライン 魚ライン