what is the difference between $_SERVER['REQUEST_URI']
and $_GET['q']
(which is used in Drupal)?
相关问题
- Views base64 encoded blob in HTML with PHP
- Laravel Option Select - Default Issue
- PHP Recursively File Folder Scan Sorted by Modific
- Can php detect if javascript is on or not?
- Using similar_text and strpos together
Given this example url:
http://www.example.com/some-dir/yourpage.php?q=bogus&n=10
$_SERVER['REQUEST_URI']
will give you:/some-dir/yourpage.php?q=bogus&n=10
Whereas
$_GET['q']
will give you:bogus
In other words,
$_SERVER['REQUEST_URI']
will hold the full request path including the querystring. And$_GET['q']
will give you the value of parameterq
in the querystring.The PHP manual explains both quite well:
http://php.net/manual/en/reserved.variables.server.php # REQUEST_URI
http://php.net/manual/en/reserved.variables.get.php # for the $_GET["q"] variable
In the context of Drupal, the difference will depend whether clean URLs are on or not.
With them off,
$_SERVER['REQUEST_URI']
will have the full path of the page as called w//index.php
, while$_GET["q"]
will just have what is assigned toq
.With them on, they will be nearly identical w/o other arguments, but
$_GET["q"]
will be missing the leading/
. Take a look towards the end of the default .htaccess to see what is going on. They will also differ if additional arguments are passed into the page, eg when a pager is active.