Created
June 6, 2012 14:40
-
-
Save shobotch/2882296 to your computer and use it in GitHub Desktop.
スマホと振り分け
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-------------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