人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPの正規表現で
テキストエリアにHTMLコードで携帯の絵文字コードを
10進法で入力された場合に
その10進法の値を
取得したいのですがどうしたらいいのでしょうか?


●質問者: hopefully
●カテゴリ:就職・転職 ウェブ制作
✍キーワード:HTML PHP エリア コード テキスト
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● pahoo
●35ポイント

NTT DoCoMo の「基本絵文字」の場合、下記のようになります。

&#63(6((4[7-9])|([5-9][0-9]))|(7[0-9][0-9])|(8(([0-2][0-9])|3[0-8])));

基本絵文字の範囲が ☀?● ということを表現していますが、ちょっとややこしいです。個人的には、HTMLの10進コード指定を取り出して、整数の範囲判断をした方がメンテナンスがしやすいと思います。


ソフトバンク、auなどについては同様にできると思います。各々のキャリアの絵文字仕様をご確認ください。

◎質問者からの返答

上記をどのように使用したらいいでしょうか?


2 ● pahoo
●35ポイント

入力されたテキストを $str とすると、下記のようなスクリプトを用意します。

$cd = 0;
$pat1 = "&#63(6((4[7-9])|([5-9][0-9]))|(7[0-9][0-9])|(8(([0-2][0-9])|3[0-8])));";
$pat2 = "[0-9]{5}";
if (mb_ereg($pat1, $str, $arr) != FALSE) {
 mb_ereg($pat2, $arr[0], $arr);
 if ($arr[0] >= 63647 && $arr[0] <= 63838) $cd = $arr[0];
}

10進数の絵文字コードがあれば、$cd にコード値(整数)が入ります。無ければ 0 です。

文字セットはSJIS限定です。


この方法の制約は、$str に複数の絵文字コードがある場合、最初のものしかピックアップできないことです。

hopefullyさんが設定した回答回数制限を迎えましたので、これにて失礼します。


追伸

#1の回答で文字化けを起こしていました。訂正します。

基本絵文字の範囲が &#63647;?&#63838; ということを表現していますが
◎質問者からの返答

ありがとうございます。

複数の絵文字コードを取得したいのですが

どうすればいいでしょうか?

回答数制限変更しました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ