PHP - スマフォ判定

クラウディア 
1. 概要
2. ダウンロード
3. 使い方
4. Laravel への取り込み

1. 概要

 クライアントが、「PC」なのか、スマートフォンなのかタブレットなのか、それによって処理を分けるというのは、よくある場面です。  だって、「Google 大先生」が「モバイルユーザビリティに問題があります」って言うんだもの。  本当は、画面のサイズを知りたいところなのですが、そこまでやるには、「JavaScript」まで巻き込まなかったりしなければならないし、「.scss」を使ってメディアクエリを使ったりしなければならない。  面倒なんです。  でまぁ、以前は、自前の処理を頑張って作ってたんですけどね。

$_SERVER['HTTP_USER_AGENT']
 の中の機種をあらわす文字列を取得してどうのこうの・・・。  しかし、これに対応するのもなかなか面倒です。  これを、みんなで解決してくれるようなソースがあるようです。  本ページは、下記のサイトを参考にさせていただきました。
PHP でスマホやタブレットなどを判定 Mobile Detect

2. ダウンロード

 「github」にあるんだけど、直接ソースをとってこれなかったので・・・。  下記のサイトへアクセスします。
Mobile Detect - lightweight PHP class for detecting mobile devices (including tablets)
 表示したら、上部画面中央に、「ダウンロード」ボタンがあります。
「PHP」-「Mobile Detect」

 ダウンロードするのは、「.zip」ファイルです。
 必要なのは、解凍した中の


Mobile_Detect.php
 というファイルのみです。

3. 使い方

 クラス化されているので、「new」してメソッドを使うのみです。  参考サイト風に書きますと

$detect = new Mobile_Detect;
 して、以下の2つのメソッドを使います。

$detect->isMobile()
$detect->isTablet()
 戻り値は「bool」で、上がスマートフォンか否かを示すもの、下がタブレットを示すものだそうです。  まぁ、組み合わせて使えばいいでしょう。

4. Laravel への取り込み

 参考サイトだと

require_once '/パス/Mobile_Detect.php';
 てなことを書いてますが、ちょっとわたしはこの書き方好きじゃないので。  「Laravel」を使用している場合、「Laravel」のパスの下に

app
 というディレクトリがありますな、この下に例えば、下記のようなサブディレクトリを作成します。

app/Lib
 このディレクトリに「Mobile_Detect.php」を配置して、1行加えます。  2行目ですな。

<?php
namespace App\Lib;
 使う方は

use App\Lib\Mobile_Detect;
 としておけば、後は、前項と同様に使用できます。  新しい機種が出たりしたら、メンテナンスされるようですので、その都度、いただいて更新しましょう。
ハイスピードプラン神戸養蜂場