用户代理类

用户代理类提供了一些有助于识别访问你网站的浏览器、移动设备或机器人的信息的函数。

使用用户代理类

初始化类

用户代理类总是可以直接从当前的 IncomingRequest 实例获取。 默认情况下,在你的控制器中会有一个请求实例,你可以从中获取用户代理类:

<?php

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

用户代理定义

用户代理名称定义位于以下配置文件中:app/Config/UserAgents.php。 如果需要的话你可以在各种用户代理数组中添加项。

示例

当用户代理类被初始化时,它会试图确定是否正在浏览你的网站的用户代理是网页浏览器、移动设备还是机器人。 如果可用的话,它也会收集平台信息:

<?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

如果用户代理是已知的网页浏览器,则返回 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

返回查看你网站的网页浏览器的名称字符串。

getVersion()
返回

检测到的浏览器版本或空字符串

返回类型

string

返回查看你网站的网页浏览器的版本号字符串。

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

解析自定义用户代理字符串,不同于当前访问者报告的字符串。