Skip to content

Instantly share code, notes, and snippets.

@shobotch
Created June 6, 2012 14:40
Show Gist options
  • Save shobotch/2882296 to your computer and use it in GitHub Desktop.
Save shobotch/2882296 to your computer and use it in GitHub Desktop.
スマホと振り分け
-------------sortingUa.php-------------
<?php
/**
* スマートフォンかどうかを振り分ける簡易的なクラスです。
*
* @package sortingUa
* @author shobotch
* @sinse PHP 5.3.8
* @version 1.0.0
*/
class sortingUa
{
/*
* ユーザーエージェントを格納しています。
*/
private $ua;
private $type;
/*
* 第一引数にUAの情報を入れてください。
* @param string $ua
* @return null
*/
public function __construct($ua)
{
$this->ua = $ua;
return $this->check();
}
/*
* 後から別のUAをチェックしたい時に再セットします。
* @param string $ua
* @return string スマホだったらsp その他はPC
*/
public function setUa($ua)
{
$this->ua = $ua;
return $this->check();
}
/*
* UAからスマートフォンか判別します。
* switch文のcase文を増やすことによって振り分け条件を追加することができます。
* @return string スマホだったらsp その他はPC
*/
public function getUa()
{
return $this->check();
}
private function check()
{
switch (true) {
case (preg_match('#\b(iP(hone|od);|Android )|dream|blackberry9500|blackberry9530|blackberry9520|blackberry9550|blackberry9800|CUPCAKE|webOS|incognito|webmate#', $this->ua)):
$this->type = "sp";
break;
default:
$this->type = "pc";
break;
}
return $this->type;
}
}
-------------sample.php-------------
<?php
//ライブラリファイル読み込み
include 'sortingUa.php';
$ua = new sortingUa($_SERVER["HTTP_USER_AGENT"]);
$useragent = $ua->getUa();
echo "このUserAgentは";
if($useragent == "sp")
{
//スマートフォンだった場合の処理
echo "スマートフォン";
} elseif($useragent == "pc")
{
//スマホ以外の時の処理
echo "パソコン、スマホ以外";
}
echo "です。<br>\r\n(".$_SERVER["HTTP_USER_AGENT"].")";
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment