第10回 Net_UserAgent_Mobile クラス - 携帯端末情報取得ライブラリ - PEAR講座
くまっち先生のPEAR講座
Lecutures on PHP
第10回 Net_UserAgent_Mobile クラス - 携帯端末情報取得ライブラリ (その2)
ファーストステップ
導入が行えたところで、パッケージの簡単な利用を行ってみることにしましょう。以下のリスト2のコードは、アクセスを行った携帯端末がどの携帯会社のものであるかを取得するためのものです。
リスト2. 携帯会社情報を取得する
<html>
<head><title>Net_UserAgent_Mobile test</title></head>
<body>
<?php
require_once 'Net/UserAgent/Mobile.php';
$userAgent = Net_UserAgent_Mobile::singleton();
print $userAgent->getName();
?>
</body>
</html>

実際に公開されているWebサーバ上(もちろんPHPやNet_UserAgent_Mobileも導入されており動作することが必要です)にこのコードを準備し、お手持ちの端末でアクセスしてみてください。getNameメソッドによって「DoCoMo」「SoftBank」といった情報が表示されるのではないでしょうか。auの方は「UP.Browser」というちょっと異なる名称のものが表示されるかと思いますがこれで問題ありません。
Net_UserAgent_Mobileは、アクセスを行う端末が出力するHTTPヘッダの1つ「User-Agent」の情報を利用して判別処理をしています。
携帯端末ではなくPCでアクセスした場合、ブラウザによって若干異なるでしょうが、多くの方は「Mozilla」と表示されたのではないでしょうか。これもPC端末におけるブラウザソフトが出力するUser-Agentによるものになります。
Net_UserAgent_Mobileでは、PCか携帯電話端末かを簡単に判別することができます。リスト3ではPC、携帯端末の判別を行い、その結果により出力する内容を変化させているコードです。
リスト3. PCか携帯電話端末かを判断する
<html>
<head><title>Net_UserAgent_Mobile test</title></head>
<body>
<?php
require_once 'Net/UserAgent/Mobile.php';
$userAgent = Net_UserAgent_Mobile::singleton();
if ($userAgent->isNonMobile()) {
print 'PC access.';
} else {
print 'Mobile access.';
}
?>
</body>
</html>
リスト3で使用しているisNonMobileメソッドは、その名の通り非携帯端末かどうかを確認し真偽値を返してくれる機能です。この機能を使用すれば、PCによるアクセスの場合はPC向けデザインのページを出力し、携帯端末によるアクセスの場合は簡易的でシンプルなデザインをページを出力する、といった切り替えも1メソッドの条件分岐で簡単に行うことが可能です。





ページのトップへ


kende様のご指摘通り、三項演算子を使用する際には、コードの複雑度などを考慮する必要がありますね。書きやすさと共に可読性も追求したいところですね。