+ -
当前位置:首页 → 问答吧 → uri应用之URL路由(上)

uri应用之URL路由(上)

时间:2009-03-12

来源:互联网

URI是什么?跟URL有什么区别呢? 这个我就不多说了。不懂的朋友可以看这里:什么是uri 什么是url 两者的关系是什么? 在PHP中实现URL路由的 可以用到两个服务器环境变量
$_SERVER["REQUEST_URI"];
$_SERVER['PATH_INFO'];
其中$_SERVER["REQUEST_URI"];数组变量存储的是访问此页面所需的 URI
通俗的说$_SERVER["REQUEST_URI"];取得的是 除去域名外。从域名的反斜杠开始一直到网址最后部分的数据
例如:
uri/2.php包含如下代码
<?
$path= $_SERVER["REQUEST_URI"];
print_r($path);
?>
我们通过下面的地址访问。
http://localhost/uri/2.php/index/hello?a=1
得到的输出为: /uri/2.php/index/hello?a=1
如果通过rewrite 把2.php屏蔽掉。则通过http://localhost/uri/index/hello?a=1 方式访问2.php文件 则得到如下输出
/uri/index/hello?a=1
下面再说说$_SERVER['PATH_INFO']
$_SERVER['PATH_INFO'] 我在手册上没看到介绍,在网上也没找到相关资料。通过实验得出 $_SERVER['PATH_INFO'] 的作用为:获取本执行文件名后面的路径及参数信息
同样举个例子
在uri目录下 建立2.php文件 代码如下
<?
$path= $_SERVER['PATH_INFO'];
print_r($path);
?>
通过http://localhost/uri/2.php/index/hello?a=1 访问得到如下输出
/index/hello   这里 没有?a=1
通过rewrite屏蔽掉2.php 通过http://localhost/uri/index/hello?a=1 访问得到的输出为空白的
也就是说$_SERVER['PATH_INFO'] 在rewrite下失去作用了。

本文章转自我的blog www.px234.cn  本文的下半部分 明日大概就可以出来了

作者: E蜗牛   发布时间: 2009-03-12

了解了解~!!

作者: sanfe   发布时间: 2009-03-12

好文,不错

作者: wxqaz   发布时间: 2009-05-01