PHPのiconv関数がすごすぎる件について

UTF-8のデータを携帯サイトで表示しなければならなくなり試行錯誤の記録。

ご存知だと思うのですが携帯のサイトで利用できる文字コードはShift-JISになります。
そのようなわけでUTF-8SJISへの変換が必要になるのですが、UTF-8で表示できてSJISで表示できない文字があります。
たとえばフランス語などで使われているアクセント記号があります。
以下のようなeやaの上に何かがついている文字です。

théâtre

これを上手に変換するにはどうしたらよいか?

変換テーブルを作成して置換する。

下記のような関数を作成して置換する方法もありますが、もっとスマートな方法はないのかな?

function ascii_replace($message) {
$from = array("É","À","È","Ù","Â","Ê","Î","Ô","Û","Ë","Ï","Ü","Ç","Œ",
"à","è","ù","â","ê","î","ô","û","ë","ï","ü","ç","œ");
$to = array("E","A","E","U","A","E","I","O","U","E","I","U","C","OE",
"a","e","u","a","a","i","o","u","e","i","u","c","oe");
return str_replace($from, $to, $message);
}

iconv関数を利用する

PHPマニュアルを眺めていたらiconv関数と言うものがありました。
これが以下のようなすばらしい動作をしてくれます。

文字列 //TRANSLIT を out_charset に追加すると、翻字機能が有効になります。これは、指定された文字集合で 表せない文字を、見た目の似ている別の文字に置き換える機能です。 文字列 //IGNORE を追加すると、指定された文字集合で 表せない文字は黙って切り捨てられます。 それ以外の場合は、str の中に変換できない文字が 出現した時点で変換が打ち切られます

iconv関数を使用することにしました。

PHPのインストール時に--with-iconvを忘れずに

iconv関数がすごいといえる理由

iconvがすごいといえるのは㈱や①②のような機種依存文字も(株)(1)(2)のように変換してくれるところです。