Web制作で役立つメモをWEB MEMO LOG

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{
	//この中のコードはスマホとタブレット以外に適用
}
?>

【参考】2015年版PHPユーザエージェント判別・判定

About Site

同じことを何度も検索していたりするんで、検索して解決したことを残そうと思いまして。