$_SERVER['REQUEST_URI']
和$_GET['q']
(在Drupal中使用)有什么区别?
答案 0 :(得分:122)
给出这个例子url:
http://www.example.com/some-dir/yourpage.php?q=bogus&n=10
$_SERVER['REQUEST_URI']
会给你:
/some-dir/yourpage.php?q=bogus&n=10
$_GET['q']
会给你:
bogus
换句话说,$_SERVER['REQUEST_URI']
将保留包含querystring的完整请求路径。 $_GET['q']
会在查询字符串中为您提供参数q
的值。
答案 1 :(得分:13)
在Drupal的上下文中,差异将取决于是否打开了干净的URL。
关闭它们后,$_SERVER['REQUEST_URI']
会将页面的完整路径称为w / /index.php
,而$_GET["q"]
只会分配给q
。< / p>
启用它们后,它们几乎与其他参数完全相同,但$_GET["q"]
将缺少前导/
。看看默认.htaccess的结尾,看看发生了什么。如果将其他参数传递到页面中,例如当寻呼机处于活动状态时,它们也会有所不同。
答案 2 :(得分:11)
PHP手册很好地解释了这一点:
http://php.net/manual/en/reserved.variables.server.php#REQUEST_URI
http://php.net/manual/en/reserved.variables.get.php#为$ _GET [“q”]变量