URL路由之PATH_INFO

在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下失去作用了。

posted @ 2010-10-21 15:34  14叔  阅读(215)  评论(0编辑  收藏  举报