mb_check_encoding関数
PHP 5.1.4, PHP 4.4.3からはmb_check_encoding関数が文字エンコーディングの妥当性をチェックするための関数として追加されました。この関数は配列を引数に取れないのでarray_walk関数などと一緒に利用して$_GET,$_POST,$_COOKIE,$_SERVER等の値をチェックします。
むっ!mb_check_encoding関数とな!
まだPHPマニュアルの方には反映されていないようですが、
<?php $func = array(); foreach (get_loaded_extensions() as $k => $v) { foreach (get_extension_funcs($v) as $k2 => $v2) { array_push($func, $v2); } } sort($func); foreach ($func as $k => $v) { echo "$v<br>"; } ?>
とかやってみると、確かにありました(5.1.4で確認)。
で、PHPでの文字エンコーディングチェックのサンプルコードですが、Mojaviなどのフレームワークを使ってる場合、入力フィルタでサクッと入れられそうです。