В чем разница между $_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']
будет содержать полный путь запроса, включая querystring. И $_GET['q']
даст вам значение параметра q
в строке запроса.
РНР руководство объясняет, как хорошо:
http://php.net/manual/en/reserved.variables.server.php # REQUEST_URI
http://php.net/manual/en/reserved.variables.get.php # для $ _GET [ "д"] переменная
В контексте Drupal, разница будет зависеть ли чистые URL-адреса включены или нет.
С ними прочь, $_SERVER['REQUEST_URI']
будет иметь полный путь к странице, как называется ж//index.php
, в то время как $_GET["q"]
будет просто то, что относится к q
.
С их помощью они будут почти идентичными без других аргументов, но $_GET["q"]
будет отсутствовать ведущий /
. Посмотрите на конец по умолчанию .htaccess, чтобы узнать, что происходит. Они также будут отличаться, если дополнительные аргументы передаются на страницу, например, когда активен пейджер.
Это единственный ответ, который решает начальную причину вопроса (переписывание URL); вместо того, чтобы просто давать довольно очевидные определения суперглобальных php. Не поймите меня неправильно, другие ответы очень правильны сами по себе, но этот ответ дает некоторую предысторию вопроса и действительно должен иметь больше upvotes! – Levit
- 1. В чем разница между $ _SERVER ['REQUEST_URI'] и "$ _SERVER ['REQUEST_URI']" (обратите внимание на двойные кавычки)?
- 2. PHP: $ _SERVER ['REDIRECT_URL'] vs $ _SERVER ['REQUEST_URI']
- 3. Parse_url и ($ _SERVER ['REQUEST_URI'])
- 4. В чем разница между $ http и $ q?
- 5. В чем разница между PHP_SELF, SCRIPT_NAME и REQUEST_URI в PHP?
- 6. mod_rewrite и explode ("/", $ _SERVER ['REQUEST_URI'])
- 7. fopen $ _SERVER [REQUEST_URI]
- 8. $ _SERVER [ 'REQUEST_URI'] неверное значение
- 9. $ _SERVER ['REQUEST_URI'] надежность?
- 10. Изменение $ _SERVER ['REQUEST_URI']
- 11. Разница между '#' и $ _SERVER ['PHP_SELF']
- 12. Разница между $ _SERVER и $ _ENV
- 13. разница между $ _SERVER и apache_note
- 14. Parse encoded $ _SERVER ['request_uri']
- 15. В чем разница между __FILE__ и $ _SERVER ['SCRIPT_FILENAME']?
- 16. Кодирование $ _SERVER переменных, таких как $ _SERVER [ «REQUEST_URI»]
- 17. В чем разница между javascript Promise и q обещанием
- 18. В чем разница между Q, Bluebird и Async?
- 19. В чем разница между ntpq -c rv и ntpdate -q?
- 20. В чем разница между библиотекой Q Promise .finally() и .done()?
- 21. Какая разница между% Q и% {} в рубине?
- 22. В чем разница между запросом.GET ['q'], request.GET ('q') и request.GET ('q',)
- 23. $ _Server ['REQUEST_URI'], похоже, ушел ... где?
- 24. разница между $ _SERVER [ 'HTTP_COOKIE'] и $ _COOKIE
- 25. Ruby эквивалент php's $ _SERVER ['REQUEST_URI']
- 26. $ _SERVER ['REQUEST_URI'] с #hash тоже?
- 27. $ _SERVER [ 'REQUEST_URI'] с несколькими OR
- 28. отправка $ _SERVER ['request_uri'] через сообщение
- 29. сравнить переменную с $ _SERVER ['REQUEST_URI']
- 30. $ _SERVER [REQUEST_URI] альтернатива для сообщения
Хм .. это две совершенно разные вещи? Я думаю, вам нужно добавить некоторый контекст –