RのWeb制作

Webサービス制作のための技術情報を。データ分析(Python、機械学習コンペ他)や自作野球ゲームMeisyoのこと中心。

Web制作

PHPでPC・スマホ・タブレット・携帯を判別するおすすめの方法

投稿日:2013年12月14日 更新日:

Smartphone
今まさにスマートフォン時代になってきています。
PHPでPCやスマートフォン、タブレット、携帯を判別してみましょう。
※この内容は2013年当時の方法です。

普通の判別法

$_SERVER['HTTP_USER_AGENT']

ユーザーエージェントで対応される方も多いかもしれません。

$UA = $_SERVER['HTTP_USER_AGENT'];
if (ereg("iPhone|iPod|Android.*Mobile|Windows.*Phone", $UA)) {
    // スマートフォン
}else{
}

これだと追加や削除が必要なので面倒です。

良い判別法

php-mobile-detectのライブラリ(MITライセンス)を使いましょう。
更新は最新版をダウンロード→インストールするだけ!

携帯・スマホ判定

function isMobile(){
    require_once('Mobile_Detect.php');
    $detect = new Mobile_Detect;
    $_SESSION['isMobile'] = $detect->isMobile() ? true : false;
    return $_SESSION['isMobile'];
}

PSR+オートローダーを使用する場合の判定法
「MobileDetect.php」にファイル名を変更します。
そして「MobileDetect.php」の2行目にnamespaceを設定します。

呼び出しする関数は以下のように設定します。

    private function isMobile()
    {
        $delect = new MobileDetect;
        $_SESSION['isMobile'] = $delect->isMobile() ? true : false;
        return $_SESSION['isMobile'];
    }

判別法

if($_SESSION['isMobile'] || isMobile()){
    // 携帯・スマホ
} else {
    // それ以外
}

簡単ですね!

-Web制作

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

[Meisyo] 練習の不均衡是正

練習に不均衡が生じているので、アップデートで改善します。 ちなみに練習の方法自体を変更しようと思っています。 すぐには実装しません。(案が固まっていないです) 基本的に平均が150より大幅に高い(また …

【初心者向け】mysqlclientのインストールで詰まったときの補足

コマンドラインでmysqlを使いたい!と思ったら、思わぬ罠がありましたので紹介します。 *僕の場合はpythonで使いたい!というものでしたが、他でも使えることを確認しています。 まずコマンドラインで …

[Meisyo] ver.0.20(a)更新情報

Meisyoでは10月20日にver.0.20(a)として下記アップデートを行いました。かなり大がかりな変更も含まれているため、詳細に報告いたします、 安定し次第、0.20(b)に移行します。 安定す …

見よう見まねでGitHubでmatomeyomiを公開する

「GitHub」をエンジニア用のSNSと聞いたのではじめてみました。 理由は「他人のコードが見たい!」と、ただそれだけでした。 全て英語ですね。 ↓使い方がわからない方はこちら 黒い画面とかよくわから …

スッキリわかるSQL入門 第2版 題材A 問75

回答が非常に長い気がするのはなぜだろうか。 /* 自己結合を用いた場合 */ SELECT DISTINCT K1.名義, K1.口座番号, K1.種別, K1.残高, K1.更新日 FROM 口座 …