- ベストアンサー
auの絵文字を変換したい
http://www.au.kddi.com/ezfactory/tec/spec/3.html ここに記されている「XHTML (HTML) 記述における絵文字の挿入」を 行いたいと思っています。 これを行うにあたり、解析する文字列は「_ez_F659_」と言ったものです。 その文字列を http://www.au.kddi.com/ezfactory/tec/spec/pdf/typeD.pdf に記されている「KDDI絵文字用Shift-JISコード」に対比させ、 その絵文字番号を取得したいです。 「_ez_F659_」であった時、絵文字番号は「1」だという事になります。 が、よく見ると絵文字番号に対してShift-JISコードが連番ではありません。 (連番っぽい感じもするが、絵文字番号と連動していない) よって、単純に絵文字番号1番のShift-JISコードを基準として 差分を計算するだけではダメそうです。 ここで思いつくのは、絵文字全てに対してひたすらマッチングさせないと いけないのか?という事だけでした。 何かいい方法はありませんでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
絵文字の対応表を作る必要はあります。 正規表現を使ってマッチさせる部分は1行で書けます。 マッチした結果を表で調べるのも1行です。 表は何行にもわたるでしょう。
その他の回答 (1)
自分だったら絵文字番号じゃなく絵文字のファイル名を「_ez_F659_.gif」とかにしちゃうかな。 したら別にそのコードを埋めておけば良いだけだしそのままファイル名だし。
お礼
ありがとうございます。そういう手もあるんですねー。 ただ、絵文字番号は連番だからどうでもいいんですが、 絵文字用Shift-JISコードが連番じゃないが為にその 全てを絵文字番号と紐付けなければ、という煩雑な 作業をどうにかしたかったんです・・・。 (配列であれば開始から絵文字番号は1、2、3・・・ としてしまえば、配列を作れば絵文字番号と紐付く) やっと100個作りましたorz
補足
<?php $code = array( "/_ez_F659_/", "/_ez_F65A_/", "/_ez_F65B_/", "/_ez_F748_/", "/_ez_F749_/", "/_ez_F74A_/", "/_ez_F74B_/", ); $rep = array( 1, 2, 3, 4, 5, 6, 7, ); $str = "_ez_F65A_あいうえ_ez_F749_おかきくけこ"; echo preg_replace($code, $rep, $str); ?> やっぱりこんな感じですか・・・。 一瞬で出来ると思ったのは大間違いでしたorz