目录搜索
欢迎目录快速参考图基本信息服务器要求许可协议变更记录关于CodeIgniter安装下载 CodeIgniter安装指导从老版本升级疑难解答介绍开始CodeIgniter 是什么?CodeIgniter 速记表支持特性应用程序流程图模型-视图-控制器架构目标教程内容提要加载静态内容创建新闻条目读取新闻条目结束语常规主题CodeIgniter URL控制器保留字视图模型辅助函数使用 CodeIgniter 类库创建你自己的类库使用 CodeIgniter 适配器创建适配器创建核心系统类钩子 - 扩展框架的核心自动装载资源公共函数URI 路由错误处理缓存调试应用程序以CLI方式运行管理应用程序处理多环境PHP替代语法安全开发规范类库参考基准测试类日历类购物车类配置类Email 类加密类文件上传类表单验证详解FTP 类图像处理类输入类Javascript 类语言类装载类迁移类输出类分页类模板解析器类安全类Session 类HTML 表格类引用通告类排版类单元测试类URI 类User-Agent 类表单验证XML-RPC 和 XML-RPC 服务器Zip 编码类缓存适配器适配器参考适配器数据库类Active Record 类数据库缓存类自定义函数调用数据库配置连接你的数据库数据库快速入门例子代码字段数据数据库维护类查询辅助函数数据库类查询生成查询记录集表数据事务数据库工具类JavaScript类辅助函数参考数组辅助函数CAPTCHA 辅助函数Cookie Helper日期辅助函数目录辅助函数下载辅助函数Email 辅助函数文件辅助函数表单辅助函数HTML辅助函数Inflector 辅助函数语言辅助函数数字辅助函数路径辅助函数安全辅助函数表情辅助函数字符串辅助函数文本辅助函数排版辅助函数URL 辅助函数XML 辅助函数
文字

CodeIgniter 用户指南 版本 2.1.0

编辑文档、查看近期更改请 登录 或 注册  找回密码
查看原文

User-Agent 类

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

初始化类

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

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

一旦加载, 对象就可以使用了: $this->agent

用户代理定义

用户代理名称的定义,位于一个配置文件: application/config/user_agents.php. 如果你需要你可以添加项目到user agent数组

示例

当User Agent 类初始化后,它会判断浏览你的网站是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.)

函数参考

$this->agent->is_browser()

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

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

Note:  The string "Safari" in this example is an array key in the list of browser definitions. You can find this list in application/config/user_agents.php if you want to add new browsers or change the stings.

$this->agent->is_mobile()

根据用户代理是否是一个已知的移动设备,返回 TRUE/FALSE (boolean)

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

$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()

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

if ($this->agent->is_referral())
{
    echo $this->agent->referrer();
}

$this->agent->agent_string()

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

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()

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

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

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

$this->agent->accept_charset()

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

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

注意: 这一功能通常不是很可靠,因为有些浏览器不提供字符集信息,或是提供的信息不一定正确

 

翻译贡献者: Hex, kissmumu
最后修改: 2011-02-01 02:11:44
上一篇:下一篇: