CodeIgniter4 用户代理类
用户代理类提供的功能可帮助识别有关浏览器,移动设备或机器人访问您的站点的信息。
使用用户代理类
初始化课程
用户代理类始终可以直接从当前IncomingRequest实例获得。默认情况下,您的控制器中将有一个请求实例,您可以从以下实例中检索User Agent类:
$agent = $this->request->getUserAgent();
用户代理定义
用户代理名称定义位于以下配置文件中: app / Config / UserAgents.php。如果需要,您可以将项目添加到各种用户代理阵列中。
例子
初始化用户代理类后,它将尝试确定浏览您站点的用户代理是Web浏览器,移动设备还是机器人。如果可用,它还将收集平台信息:
$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])
参数: | $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”是浏览器定义列表中的数组键。 如果要添加新的浏览器或更改字符串,可以在 app / Config / UserAgents.php 中找到此列表。
isMobile
([$key = NULL])
参数: | $key (string) – Optional mobile device name |
---|---|
返回: | TRUE if the user agent is a (specified) mobile device, FALSE if not |
返回类型: | bool |
如果用户代理是已知的移动设备,则返回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])
参数: | $key (string) – Optional robot name |
---|---|
返回: | TRUE if the user agent is a (specified) robot, FALSE if not |
返回类型: | bool |
如果用户代理是已知的机械手,则返回TRUE / FALSE(boolean)。
注解
用户代理库仅包含最常见的机械手定义。 它不是机器人的完整列表。 它们有数百个,因此搜索每个对象将不是很有效。 如果您发现列表中缺少一些经常访问您网站的漫游器,则可以将它们添加到您的app / Config / UserAgents.php文件中。
isReferral
()
返回: | TRUE if the user agent is a referral, FALSE if not |
---|---|
返回类型: | bool |
如果从另一个站点引用了用户代理,则返回TRUE / FALSE(boolean)。
getBrowser
()
返回: | Detected browser or an empty string |
---|---|
返回类型: | string |
返回一个字符串,其中包含查看您的网站的Web浏览器的名称。
getVersion
()
返回: | Detected browser version or an empty string |
---|---|
返回类型: | string |
返回一个字符串,其中包含查看您的网站的Web浏览器的版本号。
getMobile
()
返回: | Detected mobile device brand or an empty string |
---|---|
返回类型: | string |
返回一个字符串,其中包含查看您的站点的移动设备的名称。
getRobot
()
返回: | Detected robot name or an empty string |
---|---|
返回类型: | string |
返回一个字符串,其中包含查看您的网站的机器人的名称。
getPlatform
()
返回: | Detected operating system or an empty string |
---|---|
返回类型: | string |
返回一个字符串,其中包含查看您的网站的平台(Linux,Windows,OS X等)。
getReferrer
()
返回: | Detected referrer or an empty string |
---|---|
返回类型: | string |
引荐来源网址(如果用户代理是从另一个站点引荐的)。 通常,您将对此进行如下测试:
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)
参数: | $string (string) – A custom user-agent string |
---|---|
返回类型: | void |
解析自定义用户代理字符串,该字符串不同于当前访问者报告的字符串。