最近有点想写个框架,闲着的时候我就看了看 TP3.2
的
然后我发现他自动生成的 .htaccess
文件里面
然后我查看了下
它 lib
中的 Dispatcher.class.php
发现它是分解的路由信息
$_SERVER['PATH_INFO']; // 用户输入的地址
大致意思就是先 explode
这个字符串
然后再把前三个参数取出来
将 Module
、 Controller
、 Action
的值,设置到 $_GET
中
那么我在 php
中可以这样获取信息
<?php
echo "用户输入的网址信息:" . $_SERVER['PATH_INFO'];
$path = $_SERVER['PATH_INFO'];
$path = explode('/', $_SERVER['PATH_INFO']);
echo "<br/>服务器获取的数组:<pre>";
array_shift($path);
var_dump($path);
$array_len = count($path); //获取数组长度
if ($array_len >= 3) {
$_GET['module'] = $path[0];
$_GET['controller'] = $path[1];
$_GET['acton'] = $path[2];
for ($i = 3; $i < $array_len; $i++) {
$name = $path[$i]; //获取参数名,且不输出错误信息
$i++;
@$param = $path[$i]; //获取参数的值,且不输出错误信息
$_GET[$name] = $param;
}
} else {
header("http://www.hlzblog.top/default.html"); //如果不满足条件,则转跳到404页面
}
echo "输出获取的GET信息<br/>";
var_dump($_GET);
?>
例如当前网址我输入的是
http://web.blog.com/index.php/HLZ/Blog/read/id/2/
页面的输出信息
用户输入的网址信息:/HLZ/Blog/read/id/2/
服务器获取的数组:
array(5) {
[0]=>
string(3) "HLZ"
[1]=>
string(4) "Blog"
[2]=>
string(4) "read"
[3]=>
string(2) "id"
[4]=>
string(1) "2"
}
输出获取的GET信息
array(5) {
["module"]=>
string(3) "HLZ"
["controller"]=>
string(4) "Blog"
["acton"]=>
string(4) "read"
["id"]=>
string(1) "2"
[""]=>
NULL
}
评论列表点此评论