全て携帯絵文字のみかどうかを調べる

Shift-JISのページでフォーム送信された入力値を調べるときに使います。

Softbankの絵文字はUTF-8と思われがちですが、送信されるときはShift-JISで拾えます。
ただ端末によって絵文字を送信データに含めない場合もあるようです。

// docomo
// f89f-f8fc, f940-f949, f950-f957, f95b-f95e, f972-f97e, f980-f9fc
if(preg_match("/^(¥xf8[¥x9f-¥xfc]|¥xf9[¥x40-¥x49]|".
              "¥xf9[¥x50-¥x57]|¥xf9[¥x5b-¥x5e]|".
              "¥xf9[¥x72-¥x7e]|¥xf9[¥x80-¥xfc])+$/",$char)){
  echo "全て携帯絵文字です";
// au
// 第1バイトがf3,f6,f7で始まる2バイト文字すべてと、f440-f47e, f480-f48d
}elseif(preg_match("/^(¥xf3[¥x40-¥xfc]|¥xf6[¥x40-¥xfc]|".
              "¥xf7[¥x40-¥xfc]|¥xf4[¥x40-¥x7e]|".
              "¥xf4[¥x80-¥x8d])+$/",$char)){
  echo "全て携帯絵文字です";
// softbank (Shift-JIS)
// (絵文字1)0xf9[41-7e] 0xf9[80-9b]
// (絵文字2)0xf7[41-7e] 0xf7[80-9b]
// (絵文字3)0xf7[a1-f3]
// (絵文字4)0xf9[a1-ed]
// (絵文字5)0xfb[41-7e] 0xfb[80-8d]
// (絵文字6)0xfb[a1-d7]
}elseif(preg_match("/^(¥xf9[¥x41-¥x7e]|¥xf9[¥x80-¥x9b]|".
              "¥xf7[¥x41-¥x7e]|¥xf7[¥x80-¥x9b]|".
              "¥xf7[¥xa1-¥xf3]|".
              "¥xf9[¥xa1-¥xed]|".
              "¥xfb[¥x41-¥x7e]|¥xfb[¥x80-¥x8d]|".
              "¥xfb[¥xa1-¥xd7])+$/",$char)){
  echo "全て携帯絵文字です";
}else{
  echo "全て携帯絵文字ではありません";
}

関連記事

スポンサーリンク

onBeforeUnload

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る