PHPで携帯絵文字を扱う
[PHP]
今日はちょっと高度なテクを紹介。
PHPで携帯の絵文字は扱えるのかという話です。
携帯の文字コードはすべてShift-JISコードですから、
PHPのスクリプトを書くときも必ずShift-JISコードで書きましょう。
絵文字のコードは、他の文字が登録されている
場所以外のところにあって、そのまま表示すると
「・」と表示されてしまいます。
まず、Webminかなにかで /etc/php.ini の設定をしましょう。
その中の下の方の部分にmbstring.internal_encoding、
mbstring.http_outputの設定があるので
以下のように変更してください。
mbstring.internal_encoding = SJIS
mbstring.http_output = pass
以下はi-modeのみの絵文字を変換するスクリプトです。
$valueを絵文字を含む文字列とすると、以下のように変換できます。
$value = preg_replace('/\G((?:[\x80-\x9F\xE0-\xF7\xFA-\xFC][\x40-\x7E\x80-\xFC]|[\x00-\x7F]|[\xA1-\xDF])*)([\xF8\xF9][\x40-\xFC])/e',"'$1'.'<img src=\"./img/'.array_shift(unpack('H4chars','$2')).'.gif\">'",$value);
上のスクリプトはF840~F8FC、F940~F9FCのS-JIS文字コードを
imgタグに置き換えるということをやっております。
スクリプトと同じ位置にimgというディレクトリを作ります。
そして、そのディレクトリの中に絵文字データを入れてください。
KENTさんのページにあります。
このようにPHPでも携帯の絵文字が扱えることがわかりました。
私のページでもこれを利用し携帯対応掲示板を作っています。
http://www.freebbs.biz/phpbbs/bbs.php?id=sample
ちょっと今日のスクリプトは難しかったですね。
こんなこともできるんだ~くらいに思っといてください。
2005,03,14 : 10:55 | 修正 | トラックバック (0)
