絵文字活用術その6::docomo絵文字を表示する

By uchida - 08/10/03 - このエントリをはてなブックマークに追加このエントリをYahoo!ブックマークに追加このエントリをdel.icio.usに追加このエントリをFC2ブックマークに追加

今回は管理用絵文字コードをdocomoで表示する仕組みをコードを交えて解説します。
 各キャリアにも応用が利くと思います。

■絵文字変換リストを用意する
//例
ファイル名/home/user/emoji/PcDocomo.php

/**
 * 絵文字変換マッピングテーブル
 */
$table = array(
    1 => 'E63E',
    2 => 'E63E',
    3 => 'E63E',
    4 => 'E63F',
          ・
          ・
          ・

前回の絵文字活用術その5::docomo絵文字変換で記載したリストの反対になっています。
ただし、こちらではプログラムの兼ね合いで進数が違っていますので注意して下さい。

■絵文字変換処理
例外処理として管理用絵文字コードがあるか判断して、無ければ処理を抜けます。

$prefix = mb_convert_encoding('絵', 'SJIS', 'EUC-JP');
if (preg_match_all("/\[{$prefix}[0-9]{1,3}\]/", $str, $matches) === 0) {
    return ;
}

作成した絵文字リストを取得します

require "/home/user/emoji/PcDocomo.php";

管理用絵文字コードを一文字づつ変換する

01:foreach ($matches as $code) {
02:    $selva_num = str_replace(array("[{$prefix}", ']'), '', $code);
03:    $emoji = (!empty($table[$selva_num])) ? $table[$selva_num] : '';
04:    $emoji = sprintf('&#x%s;', $emoji);
05:    $str = str_replace($code, $emoji, $str);
06:}

2行目:管理用特殊文字を消去します。
3行目:マッピングテーブルからコードに対応した絵文字を取得。
4行目:16進数にフォーマットします。(docomoの場合のみ)
5行目:出力文字から特殊文字を置換します。

これで、変換処理は終了になります。

絵文字活用術その1~6で基本的な絵文字の活用を紹介してきました。
これらで一通りの絵文字での運用は可能です。

また、便利なツールなどがありましたら、レポートしたいと思います。