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

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

URI 类

URI类提供了帮助你分割URI字符串的函数集合。如果你使用URI路由功能,那么你就可以通过分段来重新分发地址栏信息。

注意: URI类会被系统自动初始化,不必手动启用该功能。

$this->uri->segment(n)

它允许你重新分割一个详细的URI分段。 n 为你想要得到的段数。 分割数按照从左至右的顺序编排。 例如,如果你完整的URL的地址如下:

http://example.com/index.php/news/local/metro/crime_is_up

每个URI分段的数字编号为:

  1. news
  2. local
  3. metro
  4. crime_is_up

默认情况下URI没有分段那么该函数返回 FALSE(布尔值)。如果分段信息丢失,Segment函数还有第二个参数用来设置你的默认值。 例如,这样设置后,当发生错误时,函数就会返回数字“0”。

$product_id = $this->uri->segment(3, 0);

如果没有该参数你的代码必须得像下面这样写:

if ($this->uri->segment(3) === FALSE)
{
    $product_id = 0;
}
else
{
    $product_id = $this->uri->segment(3);
}

$this->uri->rsegment(n)

这个函数和上面的函数基本功能一样,不同点在于它允许你在开启CodeIgniter的URI路由功能时进行详细分割并重新分发URI信息

$this->uri->slash_segment(n)

这个函数几乎和$this->uri->segment()一模一样,不过它可以通过第二个参数(" ","leading","both")给返回的URI参数加上“/”线, 如果不使用该参数,就会在后面增加斜画线。例如:

$this->uri->slash_segment(3);
$this->uri->slash_segment(3, 'leading');
$this->uri->slash_segment(3, 'both');

返回:

  1. segment/
  2. /segment
  3. /segment/

$this->uri->slash_rsegment(n)

这个函数功能同上面的函数,不同点在于它允许你在开启CodeIgniter的URI路由功能时进行详细分割并重新分发URI信息并可以增加斜线“/”。

$this->uri->uri_to_assoc(n)

你可以使用这个函数把每个分段信息以"标识字"=>"具体值"的形式存放在一个联合数组Array()里。 注意这个URI:

index.php/user/search/name/joe/location/UK/gender/male

使用这个函数你可以把URI以如下原型翻转到联合数组中:

[array]
(
    'name' => 'joe'
    'location' => 'UK'
    'gender' => 'male'
)

函数第一个参数可以设置偏移量,默认设置为3,因为一般情况下你的URI包含 控制器名 / 函数名 作为第一个和第二个分段。 例如:

$array = $this->uri->uri_to_assoc(3);

echo $array['name'];

第二个参数可以用来设置"标识字",这样返回的数组总会包含索引里的标识字,甚至在丢失URI的情况下也是如此。例如:

$default = array('name', 'gender', 'location', 'type', 'sort');

$array = $this->uri->uri_to_assoc(3, $default);

如果URI不包含对应你所给标识字的具体值时,该索引的值会被设置为"FALSE"。

最后,如果相应的具体值找不到给定的标识字时(若URI段数为是一个单数时)具体值也会被设置为"FALSE"(布尔值)

$this->uri->ruri_to_assoc(n)

这个函数和上面的函数基本功能一样,不同点在于它允许你在开启CodeIgniter的URI路由功能时把URI信息分割并翻转到联合数组中去。

$this->uri->assoc_to_uri()

这个函数的功能和uri_to_assoc的功能找相反,它把数组里的信息翻转成URI地址,例如:

$array = array('product' => 'shoes', 'size' => 'large', 'color' => 'red');

$str = $this->uri->assoc_to_uri($array);

// 输出: product/shoes/size/large/color/red

$this->uri->uri_string()

返回一个包含完整URI信息的字符串。例如,假设以下为你的完整URL:

http://example.com/index.php/news/local/345

函数将返回如下字符串:

/news/local/345

$this->uri->ruri_string()

这个函数和上面的函数基本功能一样,不同点在于它允许你在开启CodeIgniter的URI路由功能时把URI转换成对应的字符串。

$this->uri->total_segments()

返回总的URI的段数

$this->uri->total_rsegments()

这个函数和上面的函数基本功能一样,不同点在于它允许你在开启CodeIgniter的URI路由功能时返回URI的段数。

$this->uri->segment_array()

返回一个包含URI分段的数组。例如:

$segs = $this->uri->segment_array();

foreach ($segs as $segment)
{
    echo $segment;
    echo '<br />';
}

$this->uri->rsegment_array()

这个函数和上面的函数基本功能一样,不同点在于它允许你在开启 CodeIgniter 的 URI 路由功能时返回 URI 的数组。

 

翻译贡献者: Hex, lomatus
最后修改: 2011-02-01 02:09:37
上一篇:下一篇: