2016.12.14
【PHP】ユーザエージェント(デバイス)判定をして処理を行う方法
PC・スマートフォン・タブレット等のユーザーエージェント(デバイス)を判定して、処理を行う方法をメモメモ。
▼ユーザーエージェント(デバイス)判定
<?php class UserAgent{ private $ua; private $device; public function set(){ $this->ua = mb_strtolower($_SERVER['HTTP_USER_AGENT']); if(strpos($this->ua,'iphone') !== false){ $this->device = 'mobile'; }elseif(strpos($this->ua,'ipod') !== false){ $this->device = 'mobile'; }elseif((strpos($this->ua,'android') !== false) && (strpos($this->ua, 'mobile') !== false)){ $this->device = 'mobile'; }elseif((strpos($this->ua,'windows') !== false) && (strpos($this->ua, 'phone') !== false)){ $this->device = 'mobile'; }elseif((strpos($this->ua,'firefox') !== false) && (strpos($this->ua, 'mobile') !== false)){ $this->device = 'mobile'; }elseif(strpos($this->ua,'blackberry') !== false){ $this->device = 'mobile'; }elseif(strpos($this->ua,'ipad') !== false){ $this->device = 'tablet'; }elseif((strpos($this->ua,'windows') !== false) && (strpos($this->ua, 'touch') !== false && (strpos($this->ua, 'tablet pc') == false))){ $this->device = 'tablet'; }elseif((strpos($this->ua,'android') !== false) && (strpos($this->ua, 'mobile') === false)){ $this->device = 'tablet'; }elseif((strpos($this->ua,'firefox') !== false) && (strpos($this->ua, 'tablet') !== false)){ $this->device = 'tablet'; }elseif((strpos($this->ua,'kindle') !== false) || (strpos($this->ua, 'silk') !== false)){ $this->device = 'tablet'; }elseif((strpos($this->ua,'playbook') !== false)){ $this->device = 'tablet'; }else{ $this->device = 'others'; } return $this->device; } } ?>
▼使用方法
<?php $ua = new UserAgent(); if($ua->set() === "mobile") { //この中のコードはスマホにのみ適用 } elseif ($ua->set() === "tablet"){ //この中のコードはタブレットにのみ適用 }else{ //この中のコードはスマホとタブレット以外に適用 } ?>