Authentication




Cancel OK
B!コメントする  2013-06-18 10:38:00 by old

アクセス端末判別

昔に作ったアクセス端末判別のコードは古くなっている気がしたのでちょっと更新してみた。

function terminalcheck()
{
if( preg
match("/iPhone|iPad|Android|Windows Phone|BlackBerry/i", $SERVER['HTTPUSERAGENT']) )
{
/*
* スマートフォン判別
*/
$terminal = "smart";
}
elseif( preg
match("/DoCoMo|SoftBank|KDDI|WILLCOM|emobile/i", $SERVER['HTTPUSERAGENT']) )
{
/*
* 携帯判別
*/
$terminal = "mobile";
}
elseif( preg
match("/Wii|PSP|PS2|PLAYSTATION 3|PlayStation Vita|Nintendo 3DS/i", $SERVER['HTTPUSERAGENT']) )
{
/*
* 携帯ゲーム機
*/
$terminal = "portable";
}
elseif( preg
match("/Firefox|Chrome|MSIE|Macintosh/i", $SERVER['HTTPUSER_AGENT']) )
{
/*
* PC判別
*/
$terminal = "pc";
}
else
{
/*
* 不明な端末はPCとして判別
*/
$terminal = "unknown";
}

return $terminal;
}


いまだとだいたいこんな感じで大丈夫っぽい。
ちなみにPCの判別は一番下になります。
なぜならWindowsPhoneとかは「Windows Phone」以外にもMSIEとか入ってるますし、
他にもMSIEの系譜のものがあるので先に引っかかると正しく判別できなくなるのでPCの判別を最後に回してます。

また最近のネット事情を考慮して携帯ゲーム機も入れています。
携帯ゲーム機はけっこう曲者でして、最近出たにもかかわらずHTML5にまったく対応していないとかあってある意味IE6や8と同じような表現能力になるのでわけています。

あと蛇足ですが携帯ゲーム機はメモリー関連もけっこうシビアなので表示されても遅いとかあるので気を付ける点が多々あります。

たまにこうして自分が使っているものをバージョンアップしてみるのもいいかも。


PHP  

  • コメント
  • コメントはまだありません