CodeIgniter4 用户代理类

2020-08-17 17:11 更新

用户代理类提供的功能可帮助识别有关浏览器,移动设备或机器人访问您的站点的信息。

使用用户代理类

初始化课程

用户代理类始终可以直接从当前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

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

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号