ThinkPHP(六)

今天要再来研究下tp的Dispatcher.class.php,并且自己想也写个仿照tp该类的url解析类,虽然可能没有tp那样复杂,但是基础原理还是有的。


dispatcher.class.php (thinkphp(三))

$_SERVER['PATH_INFO']

这个变量有必要解释一下,他的作用就是解析你真正请求的文件(如index.php)后面非参数形式的内容

http://127.0.0.1/search/index.php/Home/index/index            // /Home/index/index

http://127.0.0.1/search/index.php/Home/index/index?a=3    // /Home/index/index

基本上的情况就是这样,如果想进一步了解可以自行Google

另外和这哥们有关的几个变量

请求地址(http://127.0.0.1/tp/index.php/Home/index/index?a=3)

REQUEST_URI(用户导航栏除了域名之后的东西,类似/tp/index.php/Home/index/index?a=3),

PHP_SELF(/tp/index.php/Home/index/index,它和上面的区别不仅在于会去掉get参数,它表示user真正请求的URL,及时输入http://127.0.0.1/tp/), 该值仍为/tp/index.php,这点需要在rewrite模式下注意)

SCRIPT_NAME(/tp/index.php);

QUERY_STRING(a=3);


pathinfo()

该函数第二个参数为,PATHINFO_DIRNAME,PATHINFO_BASENAME和PATHINFO_EXTENSION或PATHINFO_FILENAME,分别返回不加该参数的数组键值为dirname,basename,extension,filename;


顺便粘贴下自创愚蠢式url解析类(后续改进)


ThinkPHP(六)_第1张图片

你可能感兴趣的:(ThinkPHP(六))