CakePHP1.1でキャリアごとの絵文字を表示
9月 5th, 2008 admin Posted in CakePHP, PHP | No Comments »
すでにいろいろな方法があるようです。
CakePHPで3キャリア携帯の絵文字を表示する :: Webプログラマー+WebデザイナーなZARU日記(DB使用)
ひでぶろぐ CAKEPHP絵文字入力・出力ヘルパー(DB使用)
EmojiHelper - キャリアを意識せずに絵文字を出力できるCakePHPのHelperクラス - 芋ではない日記(JSON使用)
僕はDBを使うのが嫌だったのとJSONは使ったことがなかったのでMobilePictogramConverterという絵文字ライブラリがあるのでそれを使いました。
特徴
* DoCoMo, au, SoftBankの絵文字を相互変換可能
* 端末からサーバーへ送信された絵文字の変換が可能(掲示板など)
* SJIS/UTF-8に対応
* PCでの絵文字表示が可能(画像)
* 絵文字画像は全て透過GIFでアニメーションに対応
* DoCoMo隠し絵文字一部対応
* バイナリコード, Web入力コード, imgタグからの変換が可能
* 絵文字の削除が可能
* 文字列に含まれる絵文字の数を検出
* UserAgentからキャリアを判別し、キャリアに合った絵文字に自動変換が可能
すごいです。作った人。
手順
(1)MobilePictogramConverterを取得して解凍
(2)MobilePictogramConverterを/app/vendorsにいれる
(3)MobilePictogramConverterのimgをWEBROOT_DIR/img/m/にいれる
(4)/app/app_controller.phpを編集
-
<?php
-
vendor('MobilePictogramConverter/MobilePictogramConverter');
-
-
class AppController extends Controller {
-
-
//app_controllerのいろいろは省略
-
-
function beforeFilter() {
-
parent::beforeFilter();
-
}
-
-
function afterFilter() {
-
parent::afterFilter();
-
-
// バッファを取得して、出力バッファをクリア
-
-
$mpc =& MobilePictogramConverter::factory($out, MPC_FROM_EZWEB, MPC_FROM_CHARSET_UTF8, MPC_FROM_OPTION_WEB);
-
$mpc->setImagePath(WEBROOT_DIR . 'img/m/');
-
$out = $mpc->autoConvert();
-
}
-
-
echo $out;
-
}
-
}
-
?>
バッファをためて一括で変換しています。絵文字と一緒に全角カナも半角カナに直してしまいます。
$this->params["webservices"]で判別しているのはShin x blogさんの「CakePHP 携帯用ビューを表示する」を使用して携帯のビューを切り替えているからです。
これで携帯のビュー内で>img localsrc="180"/<とかってやると絵文字が表示されます。
Leave a Reply