第10回 Net_UserAgent_Mobile クラス - 携帯端末情報取得ライブラリ - PEAR講座
くまっち先生のPEAR講座
Lecutures on PHP
第10回 Net_UserAgent_Mobile クラス - 携帯端末情報取得ライブラリ (その3)
画面情報を知る
携帯端末には液晶画面が付いており、最近では全面が液晶だったり、ワイド液晶を搭載といった大きな画面を備えている端末も登場しています。
これら端末では、Webサイトのブラウジング時に表示可能なサイズ(dot、ドット数)が縦、横ともに定められているのですが、Net_UserAgent_Mobileを利用することでこのサイズ情報を取得することができます。以下のリスト4は、アクセスを行った携帯端末の縦横サイズをドット数で表示させるコードです。
リスト4. 端末の画面サイズを出力する
<html>
<head><title>Net_UserAgent_Mobile test</title></head>
<body>
<?php
require_once 'Net/UserAgent/Mobile.php';
$userAgent = Net_UserAgent_Mobile::singleton();
$display = $userAgent->getDisplay();
print 'Height:' . $display->getHeight() . '<br />';
print 'Width: ' . $display->getWidth() . '<br />';
?>
</body>
</html>
Net_UserAgent_MobileのgetDisplayメソッドで、その端末の画面情報を持つオブジェクトを生成し、目的の縦横サイズ情報を生成したオブジェクトからそれぞれのメソッドを使用して取得します。displayオブジェクトが持つ画面情報はサイズだけではなく、表示可能な色数や、そもそもカラー対応なのか白黒のみなのかを判定する機能といったものも備えています。
近頃発売されている端末では縦横ともに200ドットを超えるサイズで統一されていますが、以前は200ドット以上の端末と120ドット程度の端末が平行して使用されているケースが多く、端末の画面サイズに応じて表示させる画像データを変更するといった処理ケースがよくありました。現在でも旧系端末をカバーするためには、予め数種類の画像を準備しておき、リスト5のように画面サイズに応じて決定するといった処理が有効です。
リスト5. 利用するサイズを4種類に分ける
$userAgent = Net_UserAgent_Mobile::singleton();
$display = $userAgent->getDisplay();
$width = $display->getWidth();
if ($width < 120) {
$useSize = 80;
} elseif ($width < 160) {
$useSize = 120;
} elseif ($width < 200) {
$useSize = 160;
} else {
$useSize = 200;
}
よいプログラムの設計手法

今回の講座では、Net_UserAgent_Mobileの基本的な利用方法について紹介してきました。
ところでこのNet_UserAgent_Mobile、これまでの PEAR ライブラリとは異なった利用法としていることにお気づきではないでしょうか。クラスのオブジェクトを生成するために通常は「new」を使用するところを、「singleton」なるスタティックなクラスメソッドを使用しています。
実はこの Net_UserAgent_Mobile では、ライブラリ作成においてあるテクニックを利用しているのです。よりよいプログラムを行うための設計手法として利用されるテクニックなのですが、これは一体どのようなものなのでしょう。
そこで次回の講座より、このNet_UserAgent_Mobileで利用されているライブラリ作成のための設計手法を紹介します。
その他の記事も見る
- 第1回 File クラス - ファイル操作のテクニック
- 第2回 HTTP クラス - RFCに従ったプロトコル通信
- 第3回 HTTP_Header クラス - ヘッダフィールドを扱う
- 第4回 HTTP_Download クラス - ダウンロード支援ライブラリ
- 第5回 HTTP_Download クラス - ダウンロード支援ライブラリ (2)
- 第6回 Net_URL クラス - URL構築ライブラリ
- 第7回 Net_Socket クラス - ソケット通信用ライブラリ
- 第8回 HTTP_Request クラス - HTTPリクエスト支援ライブラリ
- 第9回 HTTP_Request クラス - HTTPリクエスト支援ライブラリ (2)
- 第10回 Net_UserAgent_Mobile クラス - 携帯端末情報取得ライブラリ
- 第11回 Net_UserAgent_Mobile クラス - 携帯端末情報取得ライブラリ (2)
- 第12回 Net_UserAgent_Mobile クラス - 携帯端末情報取得ライブラリ (3)
- >>「くまっち先生のPEAR講座」一覧ページに戻る
- くまっち先生
本名:熊倉 洋介 株式会社アイサイト所属
電子、ネットワーク技術を経て現在のWebアプリケーション開発の世界へ。システム設計およびコーディングがメインで、趣味の範囲内を仕事として行うことができることに感謝しながら過ごす日々。関西を中心に、勉強会やセミナーといった PHP 技術者向けコミュニティで活動を続けており、現在はPiece Frameworkプロダクトへコミットメント中。





ページのトップへ


GETのままでは検索エンジンのロボットが拾ってくれなかったためにSEO対策として有効だと言われていますね。