携帯の絵文字
仕事か・そうで無いかに関わらず、携帯絵文字については定期的に尋ねられるので、PHP Labo のプログラムを絵文字に対応させてみる。
色々検討した末、MobilePictogramConverter を利用するつもり。
PHP Labo のプログラムはプラグインに対応させているので、プラグインとして絵文字に対応…させようと思ったけど、無駄に複雑になるので組み込み機能にする予定。ただし、MobilePictogramConverter は同封せず、必要なら自分で導入する…。という手順にするつもり。
絵文字を扱う方針は、今のところ
- データベースへ保存する際、絵文字はi-modeのバイナリコードとして記録する
- データベースの内容を表示する際、絵文字(i-modeのバイナリコード)があれば、キャリアに応じて絵文字を表示
- メール送信の際、絵文字はすべて削除する
の予定。もし何か問題が発生したら変更します。
以下、自分用のメモ。
データを受信する際の処理
//PCから投稿されたデータを、i-modeのバイナリコードに変換
$str = '絵文字(i-modeの画像)を含むデータ';
$mpc = MobilePictogramConverter::factory($str, MPC_FROM_FOMA, MPC_FROM_CHARSET_UTF8, MPC_FROM_OPTION_IMG);
$mpc->setImagePath('../img/');
echo $mpc->Convert(MPC_TO_FOMA, MPC_TO_OPTION_RAW);
//i-modeから投稿されたデータを、i-modeのバイナリコードに変換
$str = 'i-modeから投稿されたデータ';
$mpc = MobilePictogramConverter::factory($str, MPC_FROM_FOMA, MPC_FROM_CHARSET_UTF8, MPC_FROM_OPTION_RAW);
$mpc->setImagePath('../img/');
echo $mpc->Convert(MPC_TO_FOMA, MPC_TO_OPTION_RAW);
//EZwebから投稿されたデータを、i-modeのバイナリコードに変換
$str = 'EZwebから投稿されたデータ';
$mpc = MobilePictogramConverter::factory($str, MPC_FROM_EZWEB, MPC_FROM_CHARSET_UTF8, MPC_FROM_OPTION_RAW);
$mpc->setImagePath('../img/');
echo $mpc->Convert(MPC_TO_FOMA, MPC_TO_OPTION_RAW);
//SoftBankから投稿されたデータを、i-modeのバイナリコードに変換
$str = 'SoftBankから投稿されたデータ';
$mpc = MobilePictogramConverter::factory($str, MPC_FROM_SOFTBANK, MPC_FROM_CHARSET_UTF8, MPC_FROM_OPTION_RAW);
$mpc->setImagePath('../img/');
echo $mpc->Convert(MPC_TO_FOMA, MPC_TO_OPTION_RAW);
データを表示する際の処理
//絵文字(i-modeのバイナリコード)があれば、キャリアに応じて絵文字を表示
$str = '絵文字(i-modeのバイナリコード)を含むデータ';
$mpc = MobilePictogramConverter::factory($str, MPC_FROM_FOMA, MPC_FROM_CHARSET_UTF8, MPC_FROM_OPTION_RAW);
$mpc->setImagePath('../img/');
echo $mpc->autoConvert();
メールを送信する際の処理
//絵文字(i-modeのバイナリコード)があれば、すべて削除
$str = '絵文字(i-modeのバイナリコード)を含むデータ';
$mpc = MobilePictogramConverter::factory($str, MPC_FROM_FOMA, MPC_FROM_CHARSET_UTF8, MPC_FROM_OPTION_RAW);
$mpc->setImagePath('../img/');
echo $mpc->Except();