HTML_Emoji のフィルタ

HTML_Emoji ライブラリでは、絵文字の変換を行う様々なフィルタを用意しています。 新しいフィルタを作ることによって、 簡単に HTML_Emoji の機能を拡張することができます。

目次

Carrier

他キャリアの UTF-8 の絵文字を、現在の端末で表示できる形に変換します。 PC の場合は <img> タグに変換します。

なお、convertCarrier() メソッドを用いても、同じ処理を行うことができます。

DecToUtf8

テキストに含まれている 10進数値文字参照の絵文字を、 UTF-8 の絵文字に変換します。

DocomoDefaultColor

docomo の携帯では、<body style="color:black"> のような設定をしていると、絵文字も黒で表示されてしまいますが、 それを強制的にデフォルトの色で表示するようにします。 このフィルタは、docomo の UTF-8 の絵文字に対してのみ作用するので、 次のようなタイミングで用いて下さい。

// 他キャリアの UTF-8 の絵文字を、現在の端末で表示できる形に変換
$text = $emoji->filter($text, 'Carrier');

// docomo の絵文字を、強制的にデフォルトの色で表示
if ($emoji->getCarrier() == 'docomo') {
    $text = $emoji->filter($text, 'DocomoDefaultColor');
}

// Shift_JIS で表示すべき端末ならば Shift_JIS に変換
if ($emoji->isSjisCarrier()) {
    $text = $emoji->filter($text, 'Utf8ToSjis');
}

実際の処理としては、 XHTML 対応機種の場合は <span style="color:red">...</span> のようなタグで、 そうでない場合は <font color="red">...</font> のようなタグで絵文字を囲んでいます。 そのため、このフィルタを textarea 内のデータに適用すると、 表示が壊れてしまうので注意して下さい。

このフィルタは使い勝手があまり良くないと思いますので、<body style="color:black"> のように設定するのをやめる方が楽かもしれません。

DocomoDefaultColorHtml

DocomoDefaultColor フィルタの HTML 専用版です。 docomo の UTF-8 の絵文字を、<font color="red">...</font> のようなタグで囲みます。

DocomoDefaultColorXHtml

DocomoDefaultColor フィルタの XHTML 専用版です。 docomo の UTF-8 の絵文字を、<span style="color:red">...</span> のようなタグで囲みます。

HexToUtf8

テキストに含まれている 16進数値文字参照の絵文字を、 UTF-8 の絵文字に変換します。

Input

いくつかのフィルタを順番に呼び出し、 フォームからの入力を UTF-8 のテキストに変換します。 具体的には、次のような処理を行います。

  • 入力データが Shift_JIS ならば UTF-8 に変換
  • 数値文字参照の絵文字を UTF-8 の絵文字に変換

入力が Shift_JIS かどうかは、 isSjisCarrier() メソッドの返り値によって判定しています。 しかし、悪意を持ったユーザーが PC から UTF-8 以外のデータを送信してくるようなことも考えられますので、 実際に運用する際には、mb_check_encoding() 関数や mb_detect_encoding() 関数を使って、入力データのチェックをすることも行うべきです。

JisToUtf8

絵文字の混じった ISO-2022-JP のテキストを UTF-8 に変換します。 受信した au のメールに含まれる絵文字を処理したい時に使って下さい。

なお、convertEncoding() メソッドを用いても、同じ処理を行うことができます。

Output

いくつかのフィルタを順番に呼び出し、 現在の端末で表示するのに適した形にテキストを変換します。 具体的には、次のような処理を行います。

  • 他キャリアの UTF-8 の絵文字を、現在の端末で表示できる形に変換
  • Shift_JIS で表示すべき端末ならば Shift_JIS に変換

Remove

テキストに含まれている、3キャリアの UTF-8 の絵文字を削除します。

なお、removeEmoji() メソッドを用いても、同じ処理を行うことができます。

SjisToUtf8

絵文字の混じった Shift_JIS のテキストを UTF-8 に変換します。

なお、convertEncoding() メソッドを用いても、同じ処理を行うことができます。

Utf8ToDec

テキストに含まれている UTF-8 の絵文字を、10進数値文字参照に変換します。

Utf8ToForm

絵文字の混じった UTF-8 のテキストを、フォームで編集できる形に変換します。 具体的には、テキストに含まれている UTF-8 の絵文字のうち、 他キャリアの絵文字だけを 16進数値文字参照に変換します。 掲示板や Wiki に書き込まれた絵文字を後で修正するような時に、 このフィルタを使って下さい。

Utf8ToHex

テキストに含まれている UTF-8 の絵文字を、16進数値文字参照に変換します。

Utf8ToSjis

絵文字の混じった UTF-8 のテキストを Shift_JIS に変換します。

なお、convertEncoding() メソッドを用いても、同じ処理を行うことができます。