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

use*_*265 28 php drupal

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

Dec*_*ler 127

给出这个示例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.

  • 在 Drupal 的上下文之外,您的答案是正确的,但是在 Drupal 7 中,`$_GET['q']` 在 Drupal 基本文件夹之后存储实际路径(不是别名)。它的功能与 `current_path()` 相同,请参见 https://api.drupal.org/api/drupal/includes%21path.inc/function/current_path/7.x 它在 Drupal 8 中被删除。 (2认同)

mpd*_*dio 13

在Drupal的上下文中,差异将取决于是否打开了干净的URL.

关闭它们,$_SERVER['REQUEST_URI']将具有所谓的w /页面的完整路径/index.php,同时$_GET["q"]将具有分配的内容q.

随着它们的开启,它们将与其他论点几乎完全相同,但$_GET["q"]将失去领先优势/.看看默认.htaccess的结尾,看看发生了什么.如果将其他参数传递到页面中,例如当寻呼机处于活动状态时,它们也会有所不同.

  • 这是解决问题(url重写)的最初原因的唯一答案; 而不只是给出相当明显的php超级全局定义.不要误会我的意思,其他答案本身也是非常正确的,但这个答案提供了一些问题的背景,真的应该有更多的赞成! (3认同)