ユーザーエージェントクラス

ユーザーエージェントクラスは、あなたのサイトにアクセスしているブラウザ、モバイルデバイス、またはロボットに関する情報を識別するのに役立つ関数を提供します。

ユーザーエージェントクラスの使用

クラスの初期化

ユーザーエージェントクラスは、現在のIncomingRequestインスタンスから常に直接利用できます。 デフォルトでは、コントローラーにリクエストインスタンスがあり、そこからユーザーエージェントクラスを取得できます。

<?php

$agent = $this->request->getUserAgent();

ユーザーエージェントの定義

ユーザーエージェント名の定義は、**app/Config/UserAgents.php** にある設定ファイルにあります。 必要に応じて、さまざまなユーザーエージェント配列に項目を追加できます。

ユーザーエージェントクラスが初期化されると、サイトを閲覧しているユーザーエージェントがWebブラウザ、モバイルデバイス、またはロボットであるかどうかを判断しようとします。 また、利用可能な場合はプラットフォーム情報も収集します。

<?php

$agent = $this->request->getUserAgent();

if ($agent->isBrowser()) {
    $currentAgent = $agent->getBrowser() . ' ' . $agent->getVersion();
} elseif ($agent->isRobot()) {
    $currentAgent = $agent->getRobot();
} elseif ($agent->isMobile()) {
    $currentAgent = $agent->getMobile();
} else {
    $currentAgent = 'Unidentified User Agent';
}

echo $currentAgent;

echo $agent->getPlatform(); // Platform info (Windows, Linux, Mac, etc.)

クラスリファレンス

class CodeIgniter\HTTP\UserAgent
isBrowser([$key = null])
パラメーター:
  • $key (string) – オプションのブラウザ名

戻り値:

ユーザーエージェントが(指定された)ブラウザの場合true、それ以外の場合false

戻り値の型:

bool

ユーザーエージェントが既知のWebブラウザの場合、true/false(ブール値)を返します。

<?php

if ($agent->isBrowser('Safari')) {
    echo 'You are using Safari.';
} elseif ($agent->isBrowser()) {
    echo 'You are using a browser.';
}

この例の文字列「Safari」は、ブラウザ定義のリストの配列キーです。 新しいブラウザを追加したり、文字列を変更したりする場合は、**app/Config/UserAgents.php**でこのリストを確認できます。

isMobile([$key = null])
パラメーター:
  • $key (string) – オプションのモバイルデバイス名

戻り値:

ユーザーエージェントが(指定された)モバイルデバイスの場合true、それ以外の場合false

戻り値の型:

bool

ユーザーエージェントが既知のモバイルデバイスである場合、true/false(ブール値)を返します。

<?php

if ($agent->isMobile('iphone')) {
    echo view('iphone/home');
} elseif ($agent->isMobile()) {
    echo view('mobile/home');
} else {
    echo view('web/home');
}
isRobot([$key = null])
パラメーター:
  • $key (string) – オプションのロボット名

戻り値:

ユーザーエージェントが(指定された)ロボットの場合true、それ以外の場合false

戻り値の型:

bool

ユーザーエージェントが既知のロボットである場合、true/false(ブール値)を返します。

ユーザーエージェントライブラリには、最も一般的なロボットの定義のみが含まれています。 ボットの完全なリストではありません。 何百ものボットが存在するため、それぞれのボットを検索するのは非常に非効率的です。 サイトに頻繁にアクセスするボットがリストにない場合は、**app/Config/UserAgents.php**ファイルに追加できます。

isReferral()
戻り値:

ユーザーエージェントがリファラルの場合true、それ以外の場合false

戻り値の型:

bool

ユーザーエージェントが別のサイトから参照された場合、true/false(ブール値)を返します。

getBrowser()
戻り値:

検出されたブラウザまたは空の文字列

戻り値の型:

string

サイトを表示しているWebブラウザの名前を含む文字列を返します。

getVersion()
戻り値:

検出されたブラウザのバージョンまたは空の文字列

戻り値の型:

string

サイトを表示しているWebブラウザのバージョン番号を含む文字列を返します。

getMobile()
戻り値:

検出されたモバイルデバイスのブランドまたは空の文字列

戻り値の型:

string

サイトを表示しているモバイルデバイスの名前を含む文字列を返します。

getRobot()
戻り値:

検出されたロボット名または空の文字列

戻り値の型:

string

サイトを表示しているロボットの名前を含む文字列を返します。

getPlatform()
戻り値:

検出されたオペレーティングシステムまたは空の文字列

戻り値の型:

string

サイトを表示しているプラットフォーム(Linux、Windows、OS Xなど)を含む文字列を返します。

getReferrer()
戻り値:

検出されたリファラーまたは空の文字列

戻り値の型:

string

ユーザーエージェントが別のサイトから参照された場合のリファラー。 通常、これは次のようにテストします

<?php

if ($agent->isReferral()) {
    echo $agent->referrer();
}
getAgentString()
戻り値:

完全なユーザーエージェント文字列または空の文字列

戻り値の型:

string

フルユーザーエージェント文字列を含む文字列を返します。通常、このようになります。

Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.0.4) Gecko/20060613 Camino/1.0.2
parse($string)
パラメーター:
  • $string (string) – カスタムユーザーエージェント文字列

戻り値の型:

void

現在の訪問者によって報告されたものとは異なる、カスタムユーザーエージェント文字列を解析します。