User-Agent 类

用户代理类提供的功能是,帮助识别是浏览器,还是移动设备或是机器人访问你的站点。另外,你可以得到referrer信息(译注:referrer信息就是访客来源信息,可以参照一般的统计系统来理解),以及语言,和支持的字符集信息。

初始化类

和大多数其他CI类一样,User Agent类也是在你的控制器里使用$this->load->library 方法完成初始化工作

  1. $this->load->library('user_agent');
一旦加载, 对象就可以使用了: _$this->agent_ ## 用户代理定义 用户代理名称的定义,位于一个配置文件: _application/config/user_agents.php_. 如果你需要你可以添加项目到user agent数组 ## 示例 当User Agent 类初始化后,它会判断浏览你的网站是Web浏览器,还是移动设备,还是机器人。它还收集相关的操作系统信息
  1. $this->load->library('user_agent');
  2. if ($this->agent->is_browser())
  3. {
  4. $agent = $this->agent->browser().' '.$this->agent->version();
  5. }
  6. elseif ($this->agent->is_robot())
  7. {
  8. $agent = $this->agent->robot();
  9. }
  10. elseif ($this->agent->is_mobile())
  11. {
  12. $agent = $this->agent->mobile();
  13. }
  14. else
  15. {
  16. $agent = 'Unidentified User Agent';
  17. }
  18. echo $agent;
  19. echo $this->agent->platform(); // Platform info (Windows, Linux, Mac, etc.)

函数参考

$this->agent->is_browser()

根据用户代理是否是一个已知的web浏览器,返回 TRUE/FALSE (boolean)

  1. if ($this->agent->is_browser('Safari'))
  2. {
  3. echo 'You are using Safari.';
  4. }
  5. else if ($this->agent->is_browser())
  6. {
  7. echo 'You are using a browser.';
  8. }
**Note:** 字符串 "Safari"是已定义的浏览器列表的数组键,如果您想添加新的浏览器,可以修改_application/config/user_agents.php_。 ## $this->agent->is_mobile() 根据用户代理是否是一个已知的移动设备,返回 TRUE/FALSE (boolean)
  1. if ($this->agent->is_mobile('iphone'))
  2. {
  3. $this->load->view('iphone/home');
  4. }
  5. else if ($this->agent->is_mobile())
  6. {
  7. $this->load->view('mobile/home');
  8. }
  9. else
  10. {
  11. $this->load->view('web/home');
  12. }

$this->agent->is_robot()

根据用户代理是否是机器人,返回 TRUE/FALSE (boolean)

注意: 用户代理类仅包含了最常见的机器人定义。它不是一个完整的机器人清单。如果你觉得有些经常访问你的网站的机器人不在名单中,你可以将它们添加到你的application/config/user_agents.php 文件中.

$this->agent->is_referral()

根据用户代理是否是从另一网站链接过来,返回 TRUE/FALSE (boolean)

$this->agent->browser()

返回一个字符串,就是浏览你的网站的浏览器名称

$this->agent->version()

返回浏览器的版本号

$this->agent->mobile()

返回访问你的站点的移动设备名称

$this->agent->robot()

返回访问你的站点的机器人名称

$this->agent->platform()

返回访问你的站点的操作系统(Linux, Windows, OS X, 等等).

$this->agent->referrer()

如果用户代理是从其他站点链接过来的,你可以做如下判断

  1. if ($this->agent->is_referral())
  2. {
  3. echo $this->agent->referrer();
  4. }

$this->agent->agent_string()

返回一个字符串包含所有用户代理信息。通常它会是这样的:

  1. Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.0.4) Gecko/20060613 Camino/1.0.2

$this->agent->accept_lang()

让你确认,用户代理是否包含一种特定的语言。例:

  1. if ($this->agent->accept_lang('en')){

  2. echo &#39;You accept English!&#39;;<br/>
  3. }

注意: 这一功能通常不是很可靠,因为有些浏览器不提供语言信息,即使提供了,也不一定准确

$this->agent->accept_charset()

让你确认,用户代理是否包含一种特定的字符集。例:

  1. if ($this->agent->accept_charset('utf-8')){ echo 'You browser supports UTF-8!';}
注意: 这一功能通常不是很可靠,因为有些浏览器不提供字符集信息,或是提供的信息不一定正确

翻译贡献者:Hex, Jacklee, kissmumu