PHPを使ってたった2行で絵文字を取り除く方法
今回は、PHPで一番簡単と思われる、絵文字を取り除く方法をご紹介します。
iモードとau、およびソフトバンクのSJIS形式の絵文字を取り除くことができます。
サンプルコード
$str = '絵文字[晴れ]';
mb_substitute_character('none');
$str = mb_convert_encoding($str, 'SJIS', 'SJIS');
// 出力
echo $str;
※ソースはSJISで記述してください
これだけでOKです。
「mb_substitute_character」は、存在しない文字コードがある場合(いわゆるゲタになる場合)の処理を設定をするためのものです。
ここで"none"と設定すると削除が行われます。
次の「mb_convert_encoding」で実際に変換を行うと(ダミーのためSJIS→SJISでOK)、絵文字が削除されます。
実行速度も早く、絵文字を取り除くには、この方法が決定版かもしれません。

DocoMoは当然OK

auもOK

SoftBankだってOK
なお、ソフトバンクにはSJIS形式以外にも、フォーム値を通常の絵文字形式で送信してくる端末も、数多くあります。
その場合は正規表現などで検出し、取り除く必要があります。
(上記のソフトバンク絵文字を削除するサンプルは、また後日アップします)
追記: 公開しました。こちらです。
この2つの方法を併用することで、全てのキャリア、全ての絵文字を削除することができそうです。
関連:


Web+DB PRESS Vol.46
Web+DB PRESS Vol.45
Web Designing 2008年 07月号
Web担当者現場のノウハウVol12~今から始めるモバイルSEO&マーケティング入門
携帯サイトSEO&SEM向上テクニック
WEB+DB PRESS 総集編 [Vol.1~36]
携帯端末用Web制作バイブル 第2版
ケータイHTMLコンパクトリファレンス
エレコム ストラップ型USBケーブル


最近の記事