« Googleカレンダーに関するまとめ | トップページ | おひっこしします。 »

mb_eregの罠(なぜか一致しない)

先日の記事で、eregのひとはmb_eregに移行するといいよ、って記事を書きました。

ところがその後。
tweetAngelで、設定した文字列が一致しないということがありまして。
(実は、mb_eregを使用してます(参考))

気になって、こんなコードを書いてみました。

if ( mb_ereg( "メモ" , "メモ。あとで(以下略" ) === FALSE ) {
print "no match.\n" ;
} else {
print "match.\n" ;
}

そして実行したら・・・
no match.

(;;;・3・)あるぇぇぇぇ?
おかしいですね。どうみても一致するはずなのに、なぜか一致しません。
ちなみに、同じようにやってる「^予定」と「見てるぅ」と「^ToDo」はちゃんと動いてたので、なおさら頭を抱えてました。

もしかして・・・と思って、ちょっと調べたら・・・やっぱりありました!
mb_eregで日本語検索すると・・ : アシアルブログ
mb_ereg系関数を使う際の文字エンコーディング設定がちゃんとなってなかったようです。
どうやら同様の件は、結構はまるポイントのようです。

詳細は上記ブログにて解説がありますのでそちらに譲るといたしまして。
結論言うと、mb_ereg()系関数を使う場合、 mb_regex_encoding() で使用する文字エンコーディングをきちんと指定してあげる必要があります。

そんなわけであっさり解決。

|

« Googleカレンダーに関するまとめ | トップページ | おひっこしします。 »

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: mb_eregの罠(なぜか一致しない):

« Googleカレンダーに関するまとめ | トップページ | おひっこしします。 »