2013年8月27日火曜日

php 絵文字を判定する

絵文字をチェックしたい。絵文字を取り除きたい。
そんなことを思った。

いくつか方法があるみたいだけど、簡単かつ高速ということで
HTML_Emojiを使ってみる。
公式(?)サイトにあるのは古いのかiPhone5の絵文字には対応していないので
以下からダウンロード。

http://download.revulo.com/PHP/HTML_Emoji-20111114.zip

iPhoneでテストしていたのでこれに気づかずにしばらくはまった。
自分も適当にネット上から見つけてきたものなので、
このファイルの由来がわからんのがちょっと怖い。
誰か知ってたら教えて。

使い方

/*---------------------------------------------------------------------------*/

// HTML_Emoji
require_once 'HTML/Emoji.php';
$backup = error_reporting(0);
$emoji = HTML_Emoji::getInstance();
error_reporting($backup);

// docomoの絵文字
$text = "晴れ\xEE\x98\xBE";

// 絵文字が存在するか?
if( $emoji->hasEmoji( $text ) ) {
    // 絵文字を取り除くs
    $text = $emoji->removeEmoji( $text )
}

/*---------------------------------------------------------------------------*/

getInstanceを呼び出すときに、
PHP5で使うとE_STRICTレベルのエラーが発生する。
PHP5で推奨されない記法(PHP4由来のもの)などに対する警告らしい。
エラー文を抑制するために、

/*---------------------------------------------------------------------------*/

$backup = error_reporting(0);
$emoji = HTML_Emoji::getInstance();
error_reporting($backup);

/*---------------------------------------------------------------------------*/

で挟む。
あとは文字列を各メソッドに渡してやるだけ。
サンプルでいちいちhasEmojiで調べているのは自分の目的が
どちらかというとそっちにあったからで、
実際に使用するときにはいちいちチェックする必要はないです。

0 件のコメント:

コメントを投稿