php 路由地址%3c%%%3e,CodeIgniter(6)——地址解析类URI.php

URI类的作用主要是处理地址字符串,将URI分成对应的片段保存到segments,路由类也主要是通过segments数组来获取上下文中的URI请求信息 。

1. URI类是如何将地址字符串解析成对应片段?

答:URI类首先将URL字符串解析成URI字符串,URI字符串的格式则是我们已经非常熟悉的CI路由地址(查询字符串,SCRIPT_NAME,以及SCRIPT_NAME目录名不会出现在uri字符串中),然后再将URI字符串中的参数解析出来存储到segments数组中,这样就讲url解析成对应的片段了。

2. 解析后的对应片段保存到变量中是怎样的数据结构?

答:解析出来的片段从下标1开始依次保存到segments数组中。

1.__construct()构造函数

URI类在初始化的时候就会对地址进行解析,构造函数会根据不同的环境调用对应的解析函数,并保存解析结果。 cli模式:调用_parse_argv()进行解析 根据uri_protocol这个配置属性决定使用哪个解析函数 默认REQUEST_URI,使用_parse_request_uri解析函数 QUERY_STRING,使用_parse_query_string解析函数 PATH_INFO或其他参数,都使用_parse_request_uri解析函数 这些解析函数会将地址解析成uri字符串,再由_set_uri_string函数将uri字符串解析成对应片段

2.命令行模式下_parse_argv()解析函数

这个uri字符串解析数组,是从$_SERVER[‘argv’]中获取参数

3._parse_request_uri()解析函数

从$_SERVER[‘REQUEST_URI’]中获取参数

4._parse_query_string()解析函数

根据$_SERVER[‘QUERY_STRING’]的参数解析出字符串

5._remove_relative_directory()——去掉多余斜杠和相对路径符号

6.uri解析成对应分段——_set_uri_string()函数

前面解读的几个函数已经将url解析成uri字符串了,但是我们最终需要的是Uri字符串所对应的参数,这样才能根据uri参数路由到正确的位置,set_uri_string()函数的功能便是将uri字符串解析成对应分段

7.合法性保障——filter_uri函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值