|
CI路由解析流程
涉及到两个类:system/core/Router.php和system/core/URI.php
在CI程序执行的过程中首先调用Router的_set_routing
系统首先判断URL的形式是查询字符串或者是友好URL(/news/article/my_article),一般都是友好URL用的多,毕竟要考虑SEO
加载route的配置文件,一般放在application/config/routes.php,其中设置了默认访问的控制器
系统分析$_SERVER['REQUEST_URI'],判断友好URL是否为空,此处的分析是由URI类处理并返回
当访问index.php/welcome/index,则friend url=welcome/index,friend url中的内容通过URI类处理后,最终变成URI数组(Array ( [1] => welcome [2] => index)
index.php friend url=空,系统将默认设置URI数组变成(Array ( [1] => welcome [2] => index)
分析URI中数组元素的信息,找到相应的类和方法,然后调用执行,如果找不到相应的类或者方法的则直接跳转至404页面。
遇到不常用的内置函数:
strncmp( string $str1 , string $str2 , int $len ) 二进制安全比较字符串开头的若干个字符
str1 第一个字符串。
str2 第二个字符串。
len 最大比较长度。
经验不多,研究不深,写得比较粗糙。
|
|