HTML_Emojiが絵文字処理を非常に楽なものへサポートしてくれるんだけど
SJISコードやUnicode記述からの変換はあっても、番号による変換はサポートしてくれてない。
当然といえば当然なんだけど。
太陽の絵文字を出そうにも、太陽がUnicodeでE63Eと覚えておいてと記述するのは理解しがたい。
太陽が1なら理解できるだろう。
ちなみに、Unicode記述の出力をキャリア変換するフィルタはこんな感じ。
$emoji = HTML_Emoji::getInstance();
$emoji->utf8 = true;
$emoji->setImageUrl('images/'); // PC出力用画像パス
$output = '太陽:';
$output = $emoji->filter($output, array('HexToUtf8', 'output'));
echo $output;
PC向けには出力する画像ファイル名をSJIS16進数(小文字)で付けて置く必要がある。
そんな訳で、番号での記述形式を決めてフィルタをコアに実装しよーと思った。
それだけだといくぶんオーバーヘッドだろうし、直接UTF化するのもあり。
docomoの絵文字番号を基準とした固定関数で良いよね!(Unicodeも何気に連続してないので、番号をkey、Unicodeをvalueとした配列定義しておくのが手っ取り早そう)
作ろうiモードコンテンツ:基本絵文字一覧 | サービス・機能 | NTTドコモ
http://www.nttdocomo.co.jp/service/imode/make/content/pictograph/basic/index.html
このテーブルをブラウザ上でコピーしてエディタに貼りつけ、正規表現で抜き出せばいーよ。
拡張絵文字もね!
^(拡?\d+).*(E[67][0-9A-F]{2}).*
配列にしたテキスト置いときます。(拡張絵文字は1000番)
http://adm.toypark.in/numToHexOfUnicodeByDocomo.txt
たとえば
-  → 
- emoji_1; →  (このフォーマット採用した。
どんな形式が標準的なんですかね?