忍び歩く男 - SLYWALKER

大阪のこっそりPHPer

PHPでEmoji4Unicodeを使ってみる (PHP Advent Calendar jp 2010 Day 6)

PHP Advent Calendar jp 2010 5日目でございます。
前日のid:red_snowさんが PHPでxmlを簡単に扱う ということでしたので、空気を読んでxmlつながりネタをやってみることにしました。

Emoji4Unicodeとは?

http://code.google.com/p/emoji4unicode/
簡単に説明するとGoogleが絵文字変換用に作成したXMLのMAPです。
emoji4unicode.xml
結構前からあるんですが、これを使ってるよって話をあまり聞きません。(自分の周りだけ???
他の言語では使っている方がいらっしゃるみたいです。
Encode::JP::Emoji - emoji4unicode ベースの絵文字変換 Perl モジュール : Media Technology Labs (MTL) : メディアテクノロジーラボ ブログ
rubyで絵文字を相互変換するgem作った(仮) - fistfvckの日記

ではPHPでは…
Google先生に[php emoji4unicode]でたずねてみると…
さきほどのPerlの記事がトップにでてしまいます。
PHPェ…

ならば作ってみるか!!

Emoji4Unicode.php


sample.php

ざっくり解説

上の2つのファイルと同じ階層に、emoji4unicode.xmlをダウンロードして設置してください。
一応PC用に画像に変換するメソッドが入っていますが、img/docomo/, img/kddi/, img/softbank/ 各キャリア名ディレクトリ下に E63E.gif のように {unicode}.gif で画像を用意することを想定しています。
xmlの解析にはsimplexmlを使いました。
xpathで検索して値を返すという簡単仕様です。
いまのとこUTF-8限定です。
バイナリでぶち込めるようにも書いてます。
Lithiumかぶれのコードです。でもコメントちゃんと書いてません。
ちゃっちゃとあわてて作ったので乱筆御免ならぬ、乱コード御免です。

最後に

PHPには優秀な絵文字変換ライブラリがいくつかあるので、Emoji4Unicodeはあまり注目されていないのかもしれませんね。


さて次はmsngさんです。なにが飛び出すか楽しみですね!