サンプルデモ
「Mobile Detect」を利用して、あなたの端末がデスクトップかスマホかを判定するサンプルデモです。アクセスして結果を確認してみて下さいね。
PHPで、デスクトップとスマホ端末を簡単に判別できるライブラリ、「Mobile Detect」が便利だったので、その使い方を説明します。目まぐるしく変化、増加するユーザーエージェントの情報を調べ上げ、そして端末を振り分けるアルゴリズムを更新していく作業コストは、それはもう膨大なものでしょう。このMobile Detectは、開発チームが定期的にそれらの作業を行ない、アルゴリズムを更新してくれるので、利用者側はこのライブラリのファイルを更新するだけで、それらの作業コストをカットすることができます。
「Mobile Detect」を利用して、あなたの端末がデスクトップかスマホかを判定するサンプルデモです。アクセスして結果を確認してみて下さいね。
サンプルデモを見て「利用したくなった」という人のために、ここからは、「Mobile Detect」の使い方を説明していきます。まずは肝心のライブラリを手に入れましょう。公式サイトの他、GitHubからも、プログラム一式をダウンロードすることができます。
ダウンロードしたMobile-Detect-master.zipを解凍すると、Mobile-Detect-masterフォルダの中に、いくつかのファイルが含まれています。今回利用するのは、その中のMobile_Detect.phpのみです。
Mobile-Detect-master.zip
この章では、「Mobile Detect」を使った基本的なプログラミング方法を説明します。「ライブラリの読み込み」「インスタンスの作成」「メソッドの実行」という三つの過程を理解すれば、ほぼ完璧です。
まずはrequire
を利用して、ライブラリを読み込みましょう。
PHP
<?php
// ライブラリの読み込み
require_once './Mobile_Detect.php' ;
続いて、インスタンスを作成し、任意の名前の変数にパスを代入します。具体的には、このプログラムを利用するための変数を決めて、次のようにライブラリの使用を宣言して下さい。サンプルでは$detect
にしています。「インスタンス」とは「ハード」のことだと想像して下さい。このハードであるインスタンス($detect
)に対して、様々な命令(ソフト)を実行していくことができるというわけです。私は「ファミコン」がインスタンスで、「カセット」をメソッドに例えて想像したらしっくりきました…。
PHP
// インスタンスの作成
$detect = new Mobile_Detect ;
インスタンスに対して何らかの命令をすることを「メソッドを実行する」と言います。インスタンス($detect
)に対して、アロー演算子(->
)を使って、次のように記述することで実現します。例えば下記は、isTablet()
というメソッドを利用して、「このプログラムを起動している端末がタブレットか否か?」を判定し、$result
に結果を代入しています。「Mobile Detect」にどのようなメソッドが用意されているかについては、次章をご参考下さい。
PHP
// メソッドを実行する
$result = $detect->isTablet() ;
下記が、一連の流れをまとめたサンプルプログラムです。どのように動作するかを確認してみましょう。
PHP
<?php
// ライブラリの読み込み
require_once './Mobile_Detect.php' ;
// インスタンスの作成
$detect = new Mobile_Detect ;
// メソッドを実行する
$result = $detect->isTablet() ;
// HTML用
$html = '' ;
// 結果を表示する
$html .= '<h2>判定結果</h2>' ;
$html .= '<p>あなたが使っている端末は…、タブレット' ;
// 条件分岐
if( $result == true )
{
$html .= 'です!!</p>' ;
}
else
{
$html .= 'ではありません!!</p>' ;
}
?>
<?php
// ブラウザに[$html]を出力 (HTMLのヘッダーとフッターを付けましょう)
echo $html ;
?>
この章では、「Mobile Detect」で利用できる各メソッドを説明しています。
デスクトップ、スマホ、タブレットを大まかに振り分けるためのメソッドです。一般的には、このメソッドだけで十分でしょう。
メソッド名 | 説明 |
---|---|
isMobile() | 端末がスマホ、またはタブレットの場合に真偽値でtrue 、違う場合にfalse を返す。 |
isTablet() | 端末がタブレットの場合に真偽値でtrue 、違う場合にfalse を返す。 |
例えば、デスクトップ、スマホ、タブレットを判別するには、これらのメソッドを利用して下記のように条件分岐を組みましょう。メソッドを実行すると、真偽値が返るのを利用して、それをif文に組み込みます。$detect->isMobile()
はタブレットも含みます。そのため、条件分岐の順番にご注意下さい。
PHP
<?php
// ライブラリの読み込み
require_once './Mobile_Detect.php' ;
// インスタンスの作成
$detect = new Mobile_Detect ;
// HTML用
$html = '' ;
// 見出し
$html .= '<h2>実行結果</h2>' ;
// タブレットの場合
if( $detect->isTablet() )
{
// 処理
$html .= '<p>あなたの端末は<b>タブレット</b>です。</p>' ;
}
// スマホの場合
elseif( $detect->isMobile() )
{
// 処理
$html .= '<p>あなたの端末は<b>スマホ</b>です。</p>' ;
}
// デスクトップの場合
else
{
// 処理
$html .= '<p>あなたの端末は<b>デスクトップ</b>です。</p>' ;
}
?>
<?php
// ブラウザに[$html]を出力 (HTMLのヘッダーとフッターを付けましょう)
echo $html ;
?>
スマホとそれ以外といった条件分岐にする場合は、下記の通りとなります。
PHP
<?php
// ライブラリの読み込み
require_once './Mobile_Detect.php' ;
// インスタンスの作成
$detect = new Mobile_Detect ;
// HTML用
$html = '' ;
// 見出し
$html .= '<h2>実行結果</h2>' ;
// スマホの場合だけテキストを表示する
if( $detect->isMobile() && !$detect->isTablet() )
{
$html .= '<p>あなたの端末は<b>スマホ</b>です。</p>' ;
}
// デスクトップ、またはタブレットの場合だけテキストを表示する
else
{
$html .= '<p>あなたの端末は<b>スマホ</b>じゃありません。</p>' ;
}
?>
<?php
// ブラウザに[$html]を出力 (HTMLのヘッダーとフッターを付けましょう)
echo $html ;
?>
スマホの中でも、iPhoneやNexusなどといった、細かい機種判定を行なう際に利用します。
メソッド名 | 説明 |
---|---|
isiPhone() | 端末がiPhoneの場合に真偽値でtrue 、違う場合にfalse を返す。 |
isBlackBerry() | 端末がBlackBerryの場合に真偽値でtrue 、違う場合にfalse を返す。 |
isNexus() | 端末がNexusの場合に真偽値でtrue 、違う場合にfalse を返す。 |
isSamsung() | 端末がSamsungの場合に真偽値でtrue 、違う場合にfalse を返す。 |
スマホの機種を判定するサンプルデモです。スマホをお持ちの人は、スマホでアクセスしてみて下さいね。
iPadやNexusなど、タブレット端末の細かい機種判定を行なう際に利用します。
メソッド名 | 説明 |
---|---|
isiPad() | 端末がiPadの場合に真偽値でtrue 、違う場合にfalse を返す。 |
isNexusTablet() | 端末がNexusの場合に真偽値でtrue 、違う場合にfalse を返す。 |
isKindle() | 端末がKindleの場合に真偽値でtrue 、違う場合にfalse を返す。 |
isSamsung() | 端末がSamsungの場合に真偽値でtrue 、違う場合にfalse を返す。 |
この項のメソッドを使って、タブレットの機種を判定するサンプルデモです。ぜひ、タブレットでアクセスしてみて下さいね。
OSの種類を判定するメソッドです。
メソッド名 | 説明 |
---|---|
isiOS() | OSがiOSの場合に真偽値でtrue 、違う場合にfalse を返す。 |
isAndroidOS() | OSがAndroidの場合に真偽値でtrue 、違う場合にfalse を返す。 |
isWindowsMobileOS() | OSがWindowsモバイルの場合に真偽値でtrue 、違う場合にfalse を返す。 |
isWindowsPhoneOS() | OSがWindowsフォンの場合に真偽値でtrue 、違う場合にfalse を返す。 |
あなたのOSを判定するサンプルデモです。合っているか、試してみて下さいね。
ブラウザの種類を判別するためのメソッドです。デスクトップでは動作しません。SafariとGoogle Chromeが混同されるなど、まだ完璧ではないようです。
メソッド名 | 説明 |
---|---|
isSafari() | ブラウザがSafariの場合に真偽値でtrue 、違う場合にfalse を返す。 |
isChrome() | ブラウザがChromeの場合に真偽値でtrue 、違う場合にfalse を返す。 |
isDolfin() | ブラウザがDolfinの場合に真偽値でtrue 、違う場合にfalse を返す。 |
isOpera() | ブラウザがOperaの場合に真偽値でtrue 、違う場合にfalse を返す。 |
isIE() | ブラウザがIEの場合に真偽値でtrue 、違う場合にfalse を返す。 |
isFirefox() | ブラウザがFirefoxの場合に真偽値でtrue 、違う場合にfalse を返す。 |
あなたのブラウザを判定するサンプルデモです。デスクトップでは動作しないので、スマホでアクセスして下さい。
OSやブラウザのバージョン情報を取得するためのメソッドです。そのブラウザじゃない場合はfalseが真偽値(boolen型)で返却されます。
メソッド名 | 説明 |
---|---|
version(Chrome) | Google Chromeのバージョン情報を取得する。 |
version(Safari) | Safariのバージョン情報を取得する。 |
version(Webkit) | Webkitのバージョン情報を取得する。 |
version(iOS) | iOSのバージョン情報を取得する。 |
あなたのブラウザを判定するサンプルデモです。デスクトップでは動作しないので、スマホでアクセスして下さい。
この記事で紹介してきた、各サンプルプログラムを配布しています。動作確認や、プログラミングの下地として、ぜひ活用して下さい。
ファイル一覧
ファイル名をクリックすると内容を確認できます。「Download Zip」をクリックするとファイル一式をダウンロードできます。
Mobile_Detect.phpはzipファイルの中に含まれていません。