Net_UserAgent_Mobile 携帯判別PEARパッケージの使い方と注意点

携帯判別(ケータイ判別)のPEARパッケージです。
(PHPです。)
PEAR::Net_UserAgent_Mobile

docomo、au、Softbank、WILLCOMの判別ができます。イーモバイルには対応していません。(ver1.0.0)

エラー処理があまり丁寧ではないせいか、ちょっとミスするとエラーが出ず画面が真っ白になるためデバックが困難です。

あくまで実機での判別のためシュミレータのようなものには対応していない部分があります。
クローラーにももちろん対応していません。
携帯っぽいユーザーエージェントに偽装してアクセスされたときの挙動は微妙です。

キャリアごとにメソッドを定義していて、共通メソッドにはなっていないので例えばau以外でgetDeviceID()を使うと、そこで完全に処理が止まります。
前述の通りエラーは出ません。

詳細な判別は、慎重に使わないと大変です。

基本的にブラックリスト方式ではなく、ホワイトリスト方式なので、使い方によっては新機種が出るごとに最新のパッケージを使う必要があります。

PEARサイト
ダウンロード

tgzファイルをWindowsの解凍ソフトで解凍すると正しく解凍できないことがあります。
そんなときは『解凍レンジ』で解凍できます。
公式サイト
ダウンロード

インストール

コマンドラインでのインストール

pear install -o net_userAgent_mobile

ダウンロードパッケージ

ダウンロード、解凍し、includeパスに配置します。
includeパスに書き込み権限がない場合は、適当なディレクトリに配置してインクルードパスを追加します。

set_include_path(
  【Net_UserAgent_Mobile】までのパス
  . PATH_SEPARATOR .
  get_include_path());

インクルードパスを指定せずに使うことはコード上できません。

使い方

require_once('Net/UserAgent/Mobile.php'); 

$agent = Net_UserAgent_Mobile::singleton(); 

if($agent->isDoCoMo()){
  echo "docomo";
}elseif($agent->isSoftbank()){
  echo "Softbank";
}elseif($agent->isEZweb()){
  echo "au";
}elseif($agent->isWillcom()){
  echo "WILLCOM";
}else{
  echo "PC";
}

メソッド一覧

共通
getUserAgent()Stringユーザーエージェント
isMobile()bool携帯かどうか これは使えない
isDoCoMo()booldocomoかどうか
isEZweb()boolau(EZweb)かどうか
isSoftBank()boolSoftbankかどうか
isWillcom()boolWILLCOMかどうか
getHeader($header)String指定されたヘッダー情報を返す
getName()Stringブラウザ名
getDisplay()bool画面情報
getVersion()bool携帯かどうか
noMatch()bool?
isJPhone()boolisSoftBank()のエイリアス
isVodafone()boolisSoftBank()のエイリアス
isAirHPhone()boolエアエッジかどうか
isNonMobile()bool携帯ではないかどうか
isTUKa()boolTUKAかどうか
isWAP1()boolWAP1かどうか
isWAP2()boolWAP2かどうか
getCarrierShortName()Stringキャリア名を1文字
getCarrierLongName()Stringキャリア名
getModel()String機種名
getRawModel()Stringモデル名
getUID()String個体識別番号
makeDisplay()object画面情報取得オブジェクト
makeDisplay()->calcSize()int画面解像度 総サイズ
makeDisplay()->getSize()array画面解像度 縦横配列
makeDisplay()->getWidth()int画面幅
makeDisplay()->getHeight()int画面高さ
makeDisplay()->getDepth()int画面色数
makeDisplay()->isColor()boolカラー画面かどうか
makeDisplay()->getWidthBytes()int横文字数(半角換算)
makeDisplay()->getHeightBytes()int縦文字数
parse($userAgent)arrayUAをパースする
docomo
getHTMLVersion()StringHTMLのバージョン
getCacheSize()intキャッシュサイズ
getSeries()Stringシリーズ名
getVendor()Stringメーカー名
getStatus()StringTB,TC,TD,TJなどの接続状態
getBandwidth()int帯域 eggy(エッギー)のみ
getSerialNumber()String端末製造番号
isFOMA()boolFOMAかどうか
getComment()StringUAのコメント部
getCardID()StringFOMAカードID(SIM ID)
isGPS()boolGPS対応かどうか
getBrowserVersion()Stringブラウザバージョン
au EZweb
getDeviceID()String端末ID
getServer()StringUAのサーバー部
getComment()StringUAのコメント部
isXHTMLCompliant()boolXHTML対応かどうか
isWIN()boolWIN端末かどうか
Softbank
isPacketCompliant()boolパケット接続かどうか
getSerialNumber()String端末製造番号
getVendor()Stringメーカー名
getVendorVersion()Stringメーカーのバージョン
getJavaInfo()StringJavaのバージョン情報
isTypeC()boolC型携帯かどうか
isTypeP()boolP型携帯かどうか
isTypeW()boolW型携帯かどうか
isType3GC()bool3GC携帯かどうか
getMsname()String機種名
WILLCOM
getVendor()Stringメーカー名
getModelVersion()String端末バージョン名
getBrowserVersion()Stringブラウザバージョン
getCacheSize()intキャッシュサイズ

関連記事

スポンサーリンク

エンペラーペンギン(皇帝ペンギン・コウテイペンギン)

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る