• ブログTOP
  • AI・ディープラーニング
  • AR
  • VR
  • WEBサイト
  • WEBマーケティング
  • SEO
  • SNS
  • その他
  • お問い合わせ

ALAKI株式会社

COZIKEEいつまでも使えるTech情報発信ブログ

リクルートサイトはこちら >

何となく使っているプログラム①-デバイス判定 編-

2018年11月21日

  • このエントリーをはてなブックマークに追加

こんにちは。Webプログラマの篠田です。

今回は「何となく使っているプログラムソース」というテーマでご紹介していきます。
第1弾は、PHPによるデバイス判定です。

この記事の目次

  • 1 デバイス判定とは
  • 2 代表的なユーザーエージェント
  • 3 PHPによるデバイス判定
  • 4 まとめ

デバイス判定とは

現在、Webサービスを利用するデバイス(端末)として挙げられるのが代表的なものが「PC」「スマホ」「タブレット」になります。

この3種類のデバイスを識別して、それぞれのデバイスに応じた処理を行うときに利用するのが「デバイス判定プログラム」です。

「デバイス判定」の方法の代表的なものとして「ユーザーエージェント」を利用するものがあります。

代表的なユーザーエージェント

ユーザーエージェント(User Agent)とは、Webブラウザ(ChromeやFirefoxなど)がサーバーに対して自動的に送信している情報です。

情報といっても、利用者の個人情報等ではなくブラウザの種類やバージョン、利用しているOSの種類などを送信しています。

このユーザーエージェントの情報の中に、デバイスを識別するための重要な情報が隠されています。

では、各端末ごとのユーザーエージェントを確認してみましょう。
※今回はMac Chromeのデベロッパーツールを参考にご紹介します。

iPhone

1
Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1

日本で多くのユーザーに利用されている携帯端末「iPhone」のユーザーエージェントになります。
ポイントは、ユーザーエージェント内に「iPhone」と明記されている点です。

iPad

1
Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1

今度はiPhoneと同じくAppleのタブレット端末「iPad」のユーザーエージェントになります。
ポイントは、ユーザーエージェント内に「iPad」と明記されている点です。

Android(タブレット)

1
Mozilla/5.0 (Linux; Android 6.0.1; Nexus 10 Build/MOB31T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.53 Safari/537.36

だいぶ古い端末になりますが、Androidの「Nexus 10」のユーザーエージェントになります。
Androidの端末には「Android」と明記されています。

Android(モバイル)

1
Mozilla/5.0 (Linux; Android 8.0; Pixel 2 Build/OPD3.170816.012) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.53 Mobile Safari/537.36

こちらも古いAndroidモバイルの「Pixel 2」のユーザーエージェントになります。
タブレット同様に「Android」とありますが、モバイルには「Mobile」という記述もあるのが特徴です。

ですが、Androidの端末の中には、タブレットだけれども「Mobile」をユーザーエージェントに含む端末があります。

厳密に判定すること必要とする場合は、現在出回っているAndroid全機種を条件に追加する必要がでてきます。

この辺りは、どこまでやるかという線引を決めて対応するしかありません。

Windows Phone

1
Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 950) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Mobile Safari/537.36 Edge/14.14263

2018年11月時点では、新規での販売が終了している「Windows Phone」のユーザーエージェントになります。

ポイントは「Windows Phone」と明記されているので、判別は容易ですが利用者数が少ない端末を対象とするのかは、要検討が必要となります。

PHPによるデバイス判定

代表的なデバイスのユーザーエージェントをみてきました。

これをもとに端末判定をするプログラムをPHPでまとめていきましょう。

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
    //ユーザーエージェントの取得
    $ua = $_SERVER['HTTP_USER_AGENT'];
 
    //スマホ(iPhone、Android、WindowsPhone)
    if ((strpos($ua, 'Android') !== false) &&
        (strpos($ua, 'Mobile') !== false) ||
        (strpos($ua, 'iPhone') !== false) ||
        (strpos($ua, 'Windows Phone') !== false)) {
 
        echo "モバイル";
    } elseif ((strpos($ua, 'Android') !== false) ||
        (strpos($ua, 'iPad') !== false)) {
        //タブレットだった場合
        echo 'タブレット';
    } else {
     echo "PC";
    }

PHPで、ユーザーエージェントを取得するときは「$_SERVER[‘HTTP_USER_AGENT’]」で取得可能です。

条件分岐は、先程ご紹介した各デバイスの特徴となるキーワードを「strpos」関数を使い検索を行います。

注意点は「Android」のときのみ「Mobile」という文字列を含んでいるかどうかを調べる必要がある点です。

条件に一切該当しなければ「PC」という判定にします。

これで、「デバイス判定」がPHPで、できるようになります。

まとめ

デバイス判定を調べると多くの情報があり、コピー&ペーストで簡単に実装ができます。

ですが、どのような特徴を利用してデバイスを判定しているのかという理屈がないと今後新しいデバイスが出てきたときに応用が効かなくなってくる恐れもあります。

知っているようで曖昧だったデバイス識別方法に対して理解が深まれば幸いです。

 


現場の業務フローに寄り添ったWebシステムをお求めなら、私たちALAKIにご相談ください。

ALAKIは経営者様が感じている問題点と、実際にWebシステムを利用される現場スタッフ様が直面している課題を、弊社システムエンジニアが丁寧に聞き取り、お客様と共にシステムを作り上げていきます。
業務改善が実現できるWebシステムをお求めの方は、是非ALAKIにご相談ください。

・ALAKIのWebシステム開発

・ALAKIのクラウド型受発注システム

  • ツイート
  • このエントリーをはてなブックマークに追加

You may also like...

  • 14800708_xl

    Macにおける、簡単ローカル環境のすすめ-Virtual Host編-

    30 6月, 2017

  • 4a57a448bf44f4eab18c46a6dc592236_m

    プログラマも簡単に実装「sweetalert.js」で作る簡単アラート

    28 7月, 2017

  • 13993703_xxl

    twig30分クッキング-はじめてのtwigインストール編-

    1 7月, 2016

プログラマー募集
  • Next story 第10回「ALAKI ◯◯Lab」を2018年11月28日(水)に開催します!
  • Previous story ブラウザから簡単にAR体験を!ARkit2を利用したWebAR

弊社サービス

MONJI+ MUGHEN ALAKI クラウド型受発注システム さよなら過去のAR。WebARがイベント集客に革命を起こします。

運営会社

ALAKI株式会社 ALAKI株式会社採用サイト

人気の記事

  • alaki1462_A_businessman_who_works_logically_1da80a2e-c297-4911-bdd6-feba0ebf1357

    仕事術

    【書籍要約】数学的な仕事術大全

    4 11月, 2024

  • fv-main-img-min

    空間コンピューティング

    世界初!「空間コンピューティング」を専用端末不要、スマホのWebブラウザのみで実現する『Web XR Site』を公開しました

    22 6月, 2023

  • Virtual reality players isometric vector illustration. VR UI and navigation. Futuristic digital technology. Virtual screen. Mixed reality 3d concept. Person in VR headset. Web banner idea

    AR

    Appleから新世代MRグラス「Vision Pro」の登場 – デジタルと現実世界が融合する新時代へ

    6 6月, 2023

  • AWE

    未分類

    ARアプリ『MUGHEN』が世界最大のAR/VRアワード「AWE」のファイナリストに選出されました!

    26 5月, 2023

  • python-logo-master-v3-TM

    pyhotn / 業務効率化

    「SwinIR」で高画質化した画像を pythonを使用して一括で元のサイズに戻す方法

    2 2月, 2023

カテゴリー

  • AI・ディープラーニング
  • AR
  • BtoB
  • CMS
  • Git
  • Google AdWords
  • gulp
  • Javascript
  • Laravel
  • Photoshop
  • Pug
  • pyhotn
  • Sass
  • SEO
  • SNS
  • Twitter広告
  • VR
  • Web3.0
  • WEBサイト
  • WEBマーケティング
  • YouTube
  • コーディング
  • システム開発
  • スマートフォンサイト
  • セキュリティ
  • セミナー
  • その他
  • ツール
  • デザイン
  • ベトナムレポート
  • 仕事術
  • 未分類
  • 業務効率化
  • 空間コンピューティング
  • 色

アーカイブ

  • 2024年11月
  • 2023年6月
  • 2023年5月
  • 2023年2月
  • 2023年1月
  • 2022年12月
  • 2022年11月
  • 2022年10月
  • 2022年9月
  • 2022年2月
  • 2021年12月
  • 2021年9月
  • 2021年7月
  • 2021年6月
  • 2020年10月
  • 2020年9月
  • 2020年8月
  • 2020年6月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年3月
  • 2019年2月
  • 2019年1月
  • 2018年12月
  • 2018年11月
  • 2018年9月
  • 2018年8月
  • 2018年7月
  • 2018年6月
  • 2018年5月
  • 2018年4月
  • 2018年3月
  • 2018年2月
  • 2018年1月
  • 2017年12月
  • 2017年11月
  • 2017年10月
  • 2017年9月
  • 2017年8月
  • 2017年7月
  • 2017年6月
  • 2017年4月
  • 2017年3月
  • 2017年2月
  • 2017年1月
  • 2016年12月
  • 2016年11月
  • 2016年10月
  • 2016年9月
  • 2016年8月
  • 2016年7月
  • 2016年6月
  • 2016年5月
  • 2016年4月
  • 2016年3月
  • 2016年2月
  • 2016年1月
  • 2015年12月
  • 2015年11月
  • 2015年10月
  • 2015年9月
  • 2015年7月
  • 2015年3月
  • 2015年2月
  • 2015年1月
  • 2014年12月
  • 2014年11月
  • 2014年10月
  • 2014年9月
  • 2014年8月
  • 2014年7月
  • 2014年6月
  • 2013年10月
  • 2013年9月

Facebook

お問い合わせ

お問い合わせ

人気の記事

  • 【書籍要約】数学的な仕事術大全
  • 世界初!「空間コンピューティング」を専用端末不要、スマホのWebブラウザのみで実現する『Web XR Site』を公開しました
  • Appleから新世代MRグラス「Vision Pro」の登場 – デジタルと現実世界が融合する新時代へ
  • ARアプリ『MUGHEN』が世界最大のAR/VRアワード「AWE」のファイナリストに選出されました!
  • 「SwinIR」で高画質化した画像を pythonを使用して一括で元のサイズに戻す方法

カテゴリー

  • AI・ディープラーニング
  • AR
  • BtoB
  • CMS
  • Git
  • Google AdWords
  • gulp
  • Javascript
  • Laravel
  • Photoshop
  • Pug
  • pyhotn
  • Sass
  • SEO
  • SNS
  • Twitter広告
  • VR
  • Web3.0
  • WEBサイト
  • WEBマーケティング
  • YouTube
  • コーディング
  • システム開発
  • スマートフォンサイト
  • セキュリティ
  • セミナー
  • その他
  • ツール
  • デザイン
  • ベトナムレポート
  • 仕事術
  • 未分類
  • 業務効率化
  • 空間コンピューティング
  • 色

検索

ALAKI株式会社 © 2025. All Rights Reserved.