Pho*_*hox 3 php get switch-statement
我正在为我的网站构建一个简单的管理区域,我希望URL看起来像这样:
http://mysite.com/admin/?home
http://mysite.com/admin/?settings
http://mysite.com/admin/?users
Run Code Online (Sandbox Code Playgroud)
但我不确定如何检索正在请求的页面,然后显示所需的页面.我在我的开关中尝试了这个:
switch($_GET[])
{
case 'home':
echo 'admin home';
break;
}
Run Code Online (Sandbox Code Playgroud)
但我得到这个错误:
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
Run Code Online (Sandbox Code Playgroud)
如果你明白我的意思.谢谢.:)
Tat*_*nen 12
使用$_SERVER['QUERY_STRING']- 包含以下位后的位?:
switch($_SERVER['QUERY_STRING']) {
case 'home':
echo 'admin home';
break;
}
Run Code Online (Sandbox Code Playgroud)
您可以进一步采用此方法,并使用以下URL:
http://mysite.com/admin/?users/user/16/
Run Code Online (Sandbox Code Playgroud)
只需使用explode()将查询字符串拆分成段,获取第一个并将其余部分作为方法的参数传递:
$args = explode('/', rtrim($_SERVER['QUERY_STRING'], '/'));
$method = array_shift($args);
switch($method) {
case 'users':
$user_id = $args[2];
doSomething($user_id);
break;
}
Run Code Online (Sandbox Code Playgroud)
这种方法在许多采用MVC模式的框架中很流行.?完全摆脱这一点的另一个步骤是mod_rewrite在Apache服务器上使用,但我认为这个问题有点超出范围.
| 归档时间: |
|
| 查看次数: |
15297 次 |
| 最近记录: |