非常教程

Codeigniter 3参考手册

用户代理 | User Agent

用户代理类 | User Agent Class

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

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

使用用户代理类

初始化类

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

$this->load->library('user_agent');

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

用户代理定义

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

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

$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字符串) - 可选的浏览器名称
Returns:  TRUE if the user agent is a (specified) browser, FALSE if not
Return type:  bool
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字符串) - 可选的移动设备名称
返回:如果用户代理是(指定的)移动设备,则返回TRUE,否则返回FALSE
Return type:  bool
如果用户代理是已知的移动设备,则返回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字符串) - 可选机器人名称
如果用户代理是(指定)机器人,则返回TRUE;否则返回FALSE
Return type:  bool
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字符串) - 语言键
返回:如果提供的语言被接受,则返回TRUE,否则返回FALSE
Return type:  bool
让您确定用户代理是否接受特定语言。例:

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

注意

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

languages()

返回:

已接受语言的数组列表

返回类型:

排列

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

参数:

$ charset(字符串) - 字符集

返回:

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

返回类型:

布尔

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

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

注意

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

charsets()

返回:

接受的字符集的数组列表

返回类型:

排列

parse($string)

参数:

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

返回类型:

void

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

用户代理 | User Agent相关

Codeigniter 3

CodeIgniter 是一个PHP MVC框架,特点是超轻量级、有数据加密、有灵活URI路由等。对于 PHP 程序员来说,它小巧但功能强大。

主页 https://codeigniter.com/
源码 https://github.com/bcit-ci/CodeIgniter
版本 3
发布版本 3.1.5