我正在为我的网站构建一个简单的管理区域,我希望 URL 看起来像这样:
http://mysite.com/admin/?home
http://mysite.com/admin/?settings
http://mysite.com/admin/?users
但我不确定如何检索正在请求的页面,然后显示所需的页面。我在我的交换机中尝试过这个:
switch($_GET[])
{
case 'home':
echo 'admin home';
break;
}
但我收到这个错误:
Fatal error: Cannot use [] for reading in C:\path\to\web\directory\admin\index.php on line 40
有没有办法解决?我想避免为 GET 请求设置值,例如:
http://mysite.com/admin/?action=home
如果你明白我的意思。谢谢。 :)
Use $_SERVER['QUERY_STRING']
– 包含之后的位?
:
switch($_SERVER['QUERY_STRING']) {
case 'home':
echo 'admin home';
break;
}
您可以更进一步使用此方法并具有如下 URL:
http://mysite.com/admin/?users/user/16/
只需使用explode()
要将查询字符串拆分为多个段,请获取第一个并将其余部分作为该方法的参数传递:
$args = explode('/', rtrim($_SERVER['QUERY_STRING'], '/'));
$method = array_shift($args);
switch($method) {
case 'users':
$user_id = $args[2];
doSomething($user_id);
break;
}
这种方法在许多采用 MVC 模式的框架中很流行。摆脱的额外步骤?
总共就是使用mod_rewrite
在 Apache 服务器上,但我认为这有点超出了这个问题的范围。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)