ちゃんと覚えておけよ?

忘れちゃいけない事のメモ、覚え書き

ワードプレス(WP)のfunction(関数)is_mobileをタブレットとスマホで区別する

WPのデフォ関数のis_mobileのスマホとタブレットを振り分ける場合、
「Android」かつ、「Mobile」がUAに入っていない場合、タブレットと判別

追加で
iPhone
iPod
dream
CUPACAKE
blackberry
webOS
incognito
webmate
googlebot-Mobile
はスマホに振り分けるようにしている。

function is_mobile(){
$UA = $_SERVER[‘HTTP_USER_AGENT’];

if((strpos($UA, ‘Android’) !== false) && (strpos($UA, ‘Mobile’) !== false) || (strpos($UA, ‘iPhone’) !== false) || (strpos($UA, ‘iPod’) !== false) || (strpos($UA, ‘dream’) !== false) || (strpos($UA, ‘CUPACAKE’) !== false) || (strpos($UA, ‘blackberry’) !== false) || (strpos($UA, ‘webOS’) !== false) || (strpos($UA, ‘incognito’) !== false) || (strpos($UA, ‘webmate’) !== false) || (strpos($UA, ‘googlebot-Mobile’) !== false)) {
//スマホ
return true;

}else{
//タブレット & PC &GAME機など
return false;
}
}

■タブレット判別 10万回ループテスト
0.76024699211121秒
0.6038818359375秒
1.1879360675812秒
1.4017260074615秒
1.08189702034秒

10万回ループテストをした結果は
stristrの約2倍
preg_matchの約5倍
strpos()関数の処理が早い結果となりました。

■preg_match() 10万回ループテスト
5.5499501228333秒
5.7616147994995秒
6.3304450511932秒
6.8812789916992秒
6.0928618907928秒

■stristr() 10万回ループテスト
1.6339380741119秒
1.6703128814697秒
1.6003098487854秒
2.1621699333191秒
2.015576839447秒

関数別1万回ループテストというのをやっている人がいたので、
一応載せておきます。

関数 時間(s)
strpos ・・・0.03461
strstr ・・・0.03685
preg_match ・・・0.04774
preg_match(iオプション付) ・・・0.04853
stripos ・・・0.07025
stristr ・・・0.07256

Comment

*