©
本文档使用
php.cn手册 发布
用户代理类提供的功能有助于识别浏览器,移动设备或访问您的网站的机器人的信息。此外,您还可以获取引荐来源信息以及语言和受支持的字符集信息。
使用用户代理类
初始化类
用户代理定义
例
类参考
像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 |
$ string(string) - 一个自定义的用户代理字符串
Return type: void
分析与当前访问者报告的不同的自定义用户代理字符串。