в чем разница между $_SERVER['REQUEST_URI']
и $_GET['q']
(который используется в Drupal)?
Учитывая этот пример, 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']
будет содержать полный путь запроса, включая строку запроса . И $_GET['q']
даст вам значение параметра q
в строке запроса.
В контексте Drupal разница будет зависеть от того, включены ли чистые URL-адреса.
С их помощью $_SERVER['REQUEST_URI']
будет иметь полный путь к странице, как называется w / /index.php
, тогда как $_GET["q"]
будет иметь только то, что назначено q
.
С их помощью они будут почти идентичны без других аргументов, но $_GET["q"]
будет отсутствовать ведущий /
. Посмотрите на конец по умолчанию .htaccess, чтобы узнать, что происходит. Они также будут отличаться, если дополнительные аргументы передаются на страницу, например, когда активен пейджер.
Руководство PHP объясняет оба довольно хорошо:
http://php.net/manual/en/reserved.variables.server.php # REQUEST_URI
http://php.net/manual/en/reserved.variables.get.php # для переменной $ _GET ["q"]