CodeIgniter4 用戶代理類

2020-08-17 17:11 更新

用戶代理類提供的功能可幫助識別有關(guān)瀏覽器,移動(dòng)設(shè)備或機(jī)器人訪問您的站點(diǎn)的信息。

使用用戶代理類

初始化課程

用戶代理類始終可以直接從當(dāng)前IncomingRequest實(shí)例獲得。默認(rèn)情況下,您的控制器中將有一個(gè)請求實(shí)例,您可以從以下實(shí)例中檢索User Agent類:

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

用戶代理定義

用戶代理名稱定義位于以下配置文件中: app / Config / UserAgents.php。如果需要,您可以將項(xiàng)目添加到各種用戶代理陣列中。

例子

初始化用戶代理類后,它將嘗試確定瀏覽您站點(diǎn)的用戶代理是Web瀏覽器,移動(dòng)設(shè)備還是機(jī)器人。如果可用,它還將收集平臺信息:

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


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


echo $currentAgent;


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

類參考

CodeIgniter\HTTP\UserAgent

isBrowser([$key = NULL])

參數(shù): $key (string) – Optional browser name
返回: TRUE if the user agent is a (specified) browser, FALSE if not
返回類型: bool

如果用戶代理是已知的Web瀏覽器,則返回TRUE / FALSE(boolean)。

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

注解

在此示例中,字符串“ Safari”是瀏覽器定義列表中的數(shù)組鍵。 如果要添加新的瀏覽器或更改字符串,可以在 app / Config / UserAgents.php 中找到此列表。

isMobile([$key = NULL])

參數(shù): $key (string) – Optional mobile device name
返回: TRUE if the user agent is a (specified) mobile device, FALSE if not
返回類型: bool

如果用戶代理是已知的移動(dòng)設(shè)備,則返回TRUE / FALSE(boolean)。

if ($agent->isMobile('iphone'))
{
        echo view('iphone/home');
}
elseif ($agent->isMobile())
{
        echo view('mobile/home');
}
else
{
        echo view('web/home');
}

isRobot([$key = NULL])

參數(shù): $key (string) – Optional robot name
返回: TRUE if the user agent is a (specified) robot, FALSE if not
返回類型: bool

如果用戶代理是已知的機(jī)械手,則返回TRUE / FALSE(boolean)。

注解

用戶代理庫僅包含最常見的機(jī)械手定義。 它不是機(jī)器人的完整列表。 它們有數(shù)百個(gè),因此搜索每個(gè)對象將不是很有效。 如果您發(fā)現(xiàn)列表中缺少一些經(jīng)常訪問您網(wǎng)站的漫游器,則可以將它們添加到您的app / Config / UserAgents.php文件中。

isReferral()

返回: TRUE if the user agent is a referral, FALSE if not
返回類型: bool

如果從另一個(gè)站點(diǎn)引用了用戶代理,則返回TRUE / FALSE(boolean)。

getBrowser()

返回: Detected browser or an empty string
返回類型: string

返回一個(gè)字符串,其中包含查看您的網(wǎng)站的Web瀏覽器的名稱。

getVersion()

返回: Detected browser version or an empty string
返回類型: string

返回一個(gè)字符串,其中包含查看您的網(wǎng)站的Web瀏覽器的版本號。

getMobile()

返回: Detected mobile device brand or an empty string
返回類型: string

返回一個(gè)字符串,其中包含查看您的站點(diǎn)的移動(dòng)設(shè)備的名稱。

getRobot()

返回: Detected robot name or an empty string
返回類型: string

返回一個(gè)字符串,其中包含查看您的網(wǎng)站的機(jī)器人的名稱。

getPlatform()

返回: Detected operating system or an empty string
返回類型: string

返回一個(gè)字符串,其中包含查看您的網(wǎng)站的平臺(Linux,Windows,OS X等)。

getReferrer()

返回: Detected referrer or an empty string
返回類型: string

引薦來源網(wǎng)址(如果用戶代理是從另一個(gè)站點(diǎn)引薦的)。 通常,您將對此進(jìn)行如下測試:

if ($agent->isReferral())
{
        echo $agent->referrer();
}

getAgentString()

返回: Full user agent string or an empty string
返回類型: 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)

參數(shù): $string (string) – A custom user-agent string
返回類型: void

解析自定義用戶代理字符串,該字符串不同于當(dāng)前訪問者報(bào)告的字符串。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號