$ _SERVER ['REQUEST_URI']和$ _GET ['q']有什么区别?

时间:2011-01-19 01:10:05

标签: php drupal

$_SERVER['REQUEST_URI']$_GET['q'](在Drupal中使用)有什么区别?

3 个答案:

答案 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”]变量