• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHPの正規表現 メール受信と文字コードについて)

PHPの正規表現 メール受信と文字コードについて

このQ&Aのポイント
  • PHPの正規表現を使用してYahooのメールサーバからメールを取得し、特定の語句が含まれているか調べたい。
  • メール本文の文字コードがSJISであるため、正規表現のマッチングに問題がある。
  • 問題の解決策として、SJISの代わりに別の文字コードを使用するか、メール本文を変換する方法がある。

質問者が選んだベストアンサー

  • ベストアンサー
  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

preg_matchはShiftJISやECU-JPには対応していません。 UTF-8ならば、複数バイトからなる文字を正しく認識します。 mbstring.language = Japanese mbstring.internal_encoding = SJIS mbstring.http_input = auto mbstring.http_output = SJIS mbstring.encoding_translation = On mbstring.detect_order = SJIS,EUC-JP,JIS,UTF-8,ASCII この辺の設定は、preg_* にはまったく影響しません。 参照しないから。 mb_ereg* を使うにしても設定するのはここじゃないような。

narusuji
質問者

お礼

ありがとうございます。 preg_matchがSJISに対応していない事すら知りませんでした。 UTF-8でもいいんですが、SJISの文字列を扱ってみたいので、もう少し調べてみたいと思います。

narusuji
質問者

補足

preg_matchではなく、mb_ereg()を使ったら上手くいきました。 if(mb_ereg("文字列",$body_sjis,$match)) echo("$match[0]<br>");

関連するQ&A