第10回 Net_UserAgent_Mobile クラス - 携帯端末情報取得ライブラリ - PEAR講座

PHP講座 HTML×CSS 初級編

くまっち先生の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、携帯端末の判別を行い、その結果により出力する内容を変化させているコードです。

    リスト3PCか携帯電話端末かを判断する

    <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メソッドの条件分岐で簡単に行うことが可能です。


  



Pick Up Q&A

Q
PHPのHTML埋め込み記述について
 このエントリーをはてなブックマークに追加 
A
$_POST["data"] == "男" ? $val = "checked" : $val = "" ; の意味は以下と同じです。 if($_POST["data"] == "男"){ $val = "checked; } e...

>>続きを読む

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

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)