1 教程-内容提要
1.1 CodeIgniter3.1教程——开始
1.2 加载静态内容
1.3 读取新闻条目
1.4 创建新闻条目
2 常规主题
2.1 CodeIgniter URL
2.2 控制器
2.3 保留名称
2.4 视图
2.5 模型
2.6 辅助函数
2.7 使用 CodeIgniter 类库
2.8 创建类库
2.9 使用 CodeIgniter 驱动器
2.10 创建驱动器
2.11 创建核心系统类
2.12 创建附属类
2.13 钩子 - 扩展框架核心
2.14 自动加载资源
2.15 公共函数
2.16 兼容性函数
2.17 URI 路由
2.18 错误处理
2.19 网页缓存
2.20 程序分析
2.21 以 CLI 方式运行
2.22 管理你的应用程序
2.23 处理多环境
2.24 在视图文件中使用 PHP 替代语法
2.25 安全
2.26 PHP 开发规范
3 类库参考
3.1 基准测试类
3.2 缓存驱动器
3.3 日历类
3.4 购物车类
3.5 配置类
3.6 Email 类
3.7 加密类(废弃)
3.8 加密类(新版)
3.9 文件上传类
3.10 表单验证类
3.11 FTP 类
3.12 图像处理类
3.13 输入类
3.14 Javascript 类
3.15 语言类
3.16 加载器类
3.17 迁移类
3.18 输出类
3.19 分页类
3.20 模板解析类
3.21 安全类
3.22 Session 类
3.23 HTML 表格类
3.24 引用通告类
3.25 排版类
3.26 单元测试类
3.27 URI 类
3.28 用户代理类
3.29 XML-RPC 与 XML-RPC 服务器类
3.30 Zip 编码类
4 数据库参考
4.1 数据库快速入门: 示例代码
4.2 数据库配置
4.3 连接你的数据库
4.4 查询
4.5 生成查询结果
4.6 查询辅助函数
4.7 查询构造器类
4.8 事务
4.9 数据库元数据
4.10 自定义函数调用
4.11 查询缓存
4.12 数据库工厂类
4.13 数据库工具类
4.14 数据库驱动器参考
5 辅助函数参考
5.1 数组辅助函数
5.2 验证码辅助函数
5.3 Cookie 辅助函数
5.4 日期辅助函数
5.5 目录辅助函数
5.6 下载辅助函数
5.7 邮件辅助函数
5.8 文件辅助函数
5.9 表单辅助函数
5.10 HTML 辅助函数
5.11 Inflector 辅助函数
5.12 语言辅助函数
5.13 数字辅助函数
5.14 路径辅助函数
5.15 安全辅助函数
5.16 表情辅助函数(废弃)
5.17 字符串辅助函数
5.18 文本辅助函数
5.19 排版辅助函数
5.20 URL 辅助函数
5.21 XML 辅助函数

URI 类

2017-12-03 20:00:17
linefo
556
最后编辑:linefo 于 2017-12-03 21:06:04

URI 类

URI 类用于帮助你从 URI 字符串中获取信息,如果你使用 URI 路由, 你也可以从路由后的 URI 中获取信息。

注解

该类由系统自己加载,无需手工加载。

类参考

class CI_URI
segment($n[, $no_result = NULL])
参数:
  • $n (int) -- Segment index number
  • $no_result (mixed) -- What to return if the searched segment is not found
返回:

Segment value or $no_result value if not found

返回类型:

mixed

用于从 URI 中获取指定段。参数 n 为你希望获取的段序号,URI 的段从左到右进行编号。 例如,如果你的完整 URL 是这样的:

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

那么你的每个分段如下:

#. news
#. local
#. metro
#. crime_is_up

第二个参数为可选的,默认为 NULL ,它用于设置当所请求的段不存在时的返回值。 例如,如下代码在失败时将返回数字 0

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

它可以避免你写出类似于下面这样的代码:

if ($this->uri->segment(3) === FALSE)
{
    $product_id = 0;
}
else
{
    $product_id = $this->uri->segment(3);
}
rsegment($n[, $no_result = NULL])
参数:
  • $n (int) -- Segment index number
  • $no_result (mixed) -- What to return if the searched segment is not found
返回:

Routed segment value or $no_result value if not found

返回类型:

mixed

当你使用 CodeIgniter 的 URI 路由 功能时,该方法和 segment() 类似, 只是它用于从路由后的 URI 中获取指定段。

slash_segment($n[, $where = 'trailing'])
参数:
  • $n (int) -- Segment index number
  • $where (string) -- Where to add the slash ('trailing' or 'leading')
返回:

Segment value, prepended/suffixed with a forward slash, or a slash if not found

返回类型:

string

该方法和 segment() 类似,只是它会根据第二个参数在返回结果的前面或/和后面添加斜线。 如果第二个参数未设置,斜线会添加到后面。例如:

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

返回结果:

  1. segment/
  2. /segment
  3. /segment/
slash_rsegment($n[, $where = 'trailing'])
参数:
  • $n (int) -- Segment index number
  • $where (string) -- Where to add the slash ('trailing' or 'leading')
返回:

Routed segment value, prepended/suffixed with a forward slash, or a slash if not found

返回类型:

string

当你使用 CodeIgniter 的 URI 路由 功能时,该方法和 slash_segment() 类似, 只是它用于从路由后的 URI 返回结果的前面或/和后面添加斜线。

uri_to_assoc([$n = 3[, $default = array()]])
参数:
  • $n (int) -- Segment index number
  • $default (array) -- Default values
返回:

Associative URI segments array

返回类型:

array

该方法用于将 URI 的段转换为一个包含键值对的关联数组。如下 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 中不存在,数组中的该索引值将设置为 NULL 。

另外,如果 URI 中的某个键没有相应的值与之对应(例如 URI 的段数为奇数), 数组中的该索引值也将设置为 NULL 。

ruri_to_assoc([$n = 3[, $default = array()]])
参数:
  • $n (int) -- Segment index number
  • $default (array) -- Default values
返回:

Associative routed URI segments array

返回类型:

array

当你使用 CodeIgniter 的 URI 路由 功能时,该方法和 uri_to_assoc() 类似, 只是它用于将路由后的 URI 的段转换为一个包含键值对的关联数组。

assoc_to_uri($array)
参数:
  • $array (array) -- Input array of key/value pairs
返回:

URI string

返回类型:

string

根据输入的关联数组生成一个 URI 字符串,数组的键将包含在 URI 的字符串中。例如:

$array = array('product' => 'shoes', 'size' => 'large', 'color' => 'red');
$str = $this->uri->assoc_to_uri($array);

// Produces: product/shoes/size/large/color/red
uri_string()
返回:URI string
返回类型:string

返回一个相对的 URI 字符串,例如,如果你的完整 URL 为:

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

该方法返回:

news/local/345
ruri_string()
返回:Routed URI string
返回类型:string

当你使用 CodeIgniter 的 URI 路由 功能时,该方法和 uri_string() 类似, 只是它用于返回路由后的 URI 。

total_segments()
返回:Count of URI segments
返回类型:int

返回 URI 的总段数。

total_rsegments()
返回:Count of routed URI segments
返回类型:int

当你使用 CodeIgniter 的 URI 路由 功能时,该方法和 total_segments() 类似, 只是它用于返回路由后的 URI 的总段数。

segment_array()
返回:URI segments array
返回类型:array

返回 URI 所有的段组成的数组。例如:

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

foreach ($segs as $segment)
{
    echo $segment;
    echo '<br />';
}
rsegment_array()
返回:Routed URI segments array
返回类型:array

当你使用 CodeIgniter 的 URI 路由 功能时,该方法和 segment_array() 类似, 只是它用于返回路由后的 URI 的所有的段组成的数组。