目录 搜索
欢迎 目录 快速参考图 基本信息 服务器要求 许可协议 变更记录 关于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
上一篇: 下一篇: