首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用户代理类 | User Agent Class

用户代理类提供的功能有助于识别浏览器,移动设备或访问您的网站的机器人的信息。此外,您还可以获取引荐来源信息以及语言和受支持的字符集信息。

  • 使用用户代理类
    • 初始化类
    • 用户代理定义
  • 类参考

使用用户代理类

初始化类

像CodeIgniter中的大多数其他类一样,User Agent类在您的控制器中使用$ this-> load-> library函数进行初始化:

代码语言:javascript
复制
$this->load->library('user_agent');

加载后,该对象将可用: $this->agent

用户代理定义

用户代理名称定义位于位于application / config / user_agents.php的配置文件中。如有需要,您可以将项目添加到各种用户代理阵列中。

在初始化用户代理类时,它将尝试确定浏览您的站点的用户代理是Web浏览器,移动设备还是机器人。如果可用,它也会收集平台信息。

代码语言:javascript
复制
$this->load->library('user_agent');

if ($this->agent->is_browser())
{
        $agent = $this->agent->browser().' '.$this->agent->version();
}
elseif ($this->agent->is_robot())
{
        $agent = $this->agent->robot();
}
elseif ($this->agent->is_mobile())
{
        $agent = $this->agent->mobile();
}
else
{
        $agent = 'Unidentified User Agent';
}

echo $agent;

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

类参考

class CI_User_agentis_browser([$key = NULL])

参数:

$ key(字符串) - 可选的浏览器名称

返回:

如果用户代理是(指定的)浏览器则为TRUE,否则为FALSE

返回类型:

布尔

  • $ key字符串) - 可选的浏览器名称
代码语言:txt
复制
Returns:  TRUE if the user agent is a (specified) browser, FALSE if not
代码语言:txt
复制
Return type:  bool
代码语言:txt
复制
Returns TRUE/FALSE (boolean) if the user agent is a known web browser.

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

注意

本例中的字符串“Safari”是浏览器定义列表中的数组键。你可以在application / config / user_agents.php中找到这个列表,如果你想添加新的浏览器或改变叮咬。

is_mobile([$key = NULL])

参数:

$ key(字符串) - 可选的移动设备名称

返回:

如果用户代理是(指定的)移动设备则为TRUE,否则为FALSE

返回类型:

布尔

  • $ key字符串) - 可选的移动设备名称
代码语言:javascript
复制
返回:如果用户代理是(指定的)移动设备,则返回TRUE,否则返回FALSE
代码语言:txt
复制
Return type:  bool
代码语言:javascript
复制
如果用户代理是已知的移动设备,则返回TRUE / FALSE(布尔值)。

if($ this-> agent-> is_mobile('iphone')){$ this-> load-> view('iphone / home'); } elseif($ this-> agent-> is_mobile()){$ this-> load-> view('mobile / home'); } else {$ this-> load-> view('web / home'); }

is_robot([$key = NULL])

参数:

$ key(字符串) - 可选机器人名称

返回:

如果用户代理是(指定的)机器人,则为TRUE,否则为FALSE

返回类型:

布尔

  • $ key字符串) - 可选机器人名称
代码语言:javascript
复制
如果用户代理是(指定)机器人,则返回TRUE;否则返回FALSE
代码语言:txt
复制
Return type:  bool
代码语言:txt
复制
Returns TRUE/FALSE (boolean) if the user agent is a known robot.

注意

用户代理库只包含最常见的机器人定义。这不是一个完整的机器人列表。有数百个,因此搜索每一个都不会很有效。如果您发现列表中缺少一些通常访问您站点的机器人,您可以将它们添加到application / config / user_agents.php文件中。

is_referral()

返回:

如果用户代理是推荐,则为TRUE,否则为FALSE

返回类型:

布尔

browser()

返回:

检测到浏览器或空字符串

返回类型:

version()

返回:

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

返回类型:

mobile()

返回:

检测到移动设备品牌或空字符串

返回类型:

robot()

返回:

检测到的机器人名称或空字符串

返回类型:

platform()

返回:

检测到操作系统或空字符串

返回类型:

referrer()

返回:

检测到的推荐人或空字符串

返回类型:

agent_string()

返回:

完整的用户代理字符串或一个空字符串

返回类型:

accept_lang([$lang = 'en'])

参数:

$ lang(字符串) - 语言键

返回:

如果提供语言被接受,则为TRUE,否则为FALSE

返回类型:

布尔

  • $ lang字符串) - 语言键
代码语言:javascript
复制
返回:如果提供的语言被接受,则返回TRUE,否则返回FALSE
代码语言:txt
复制
Return type:  bool
代码语言:javascript
复制
让您确定用户代理是否接受特定语言。例:

if ($this->agent->accept_lang('en')) { echo 'You accept English!'; }

注意

由于某些浏览器不提供语言信息,因此这种方法通常不可靠,即使在那些浏览器中,也不总是准确的。

languages()

返回:

已接受语言的数组列表

返回类型:

排列

accept_charset([$charset = 'utf-8'])

参数:

$ charset(字符串) - 字符集

返回:

如果字符集被接受则为TRUE,否则为FALSE

返回类型:

布尔

  • $ charset字符串) - 字符集
代码语言:javascript
复制
返回:如果字符集被接受,则返回TRUE,否则返回FALSE
代码语言:txt
复制
Return type:  bool
代码语言:javascript
复制
让您确定用户代理是否接受特定的字符集。例:

if ($this->agent->accept_charset('utf-8')) { echo 'You browser supports UTF-8!'; }

注意

这种方法通常不是很可靠,因为有些浏览器不提供字符集信息,甚至在那些浏览器中,它也不总是准确的。

charsets()

返回:

接受的字符集的数组列表

返回类型:

排列

parse($string)

参数:

$ string(string) - 一个自定义的用户代理字符串

返回类型:

void

  • $ stringstring) - 一个自定义的用户代理字符串
代码语言:txt
复制
Return type:  void
代码语言:javascript
复制
分析与当前访问者报告的不同的自定义用户代理字符串。

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com