PHPプログラミングで、メール送信するときに一番やっかいなのが、
機種依存文字を送らないようにする事だと思います。
ネットで色々調べたけど、これだっ!ていう物がなかなかなくてどうしようか考えました。
いったん違い文字コードにして元に戻せば良いと書いてあるサイトが有り、
その言葉を元につくってみました。
ソースはUTF-8N形式でのサンプルになります。
関数のパラメータは、文字列です。
受け取った文字列をUTF-8からSJISに変換してさらにUTF-8に変換しています。
これにより、変換できない文字(機種依存文字)が?に置き換わる機能を利用して
一文字ずつチェックをします。
機種依存文字が入力されてれば、その文字全てを返す関数になっていますので、
エラーメッセージを出すのに活用出来るかと思います。
function check_machine_dependent_character($str) {
$chk = mb_convert_encoding(mb_convert_encoding($str,'SJIS','UTF-8'),'UTF-8','SJIS');
$rtn = '';
for ($i=0; $i<mb_strlen($str,'UTF-8'); $i++){
$str1 = mb_substr($str, $i, 1,'UTF-8');
$chk1 = mb_substr($chk, $i, 1,'UTF-8');
if($str1 <> $chk1) {
$rtn = $rtn . $str1 . ' ';
}
}
return $rtn;
}
単純に作ってみましたので、あくまで参考程度に。