quelle est la différence entre $_SERVER['REQUEST_URI']
et $_GET['q']
(qui est utilisé dans Drupal)?
Étant donné cet exemple d'URL:
http://www.example.com/some-dir/yourpage.php?q=bogus&n=1
$_SERVER['REQUEST_URI']
te donnera:
/some-dir/yourpage.php?q=bogus&n=10
Tandis que $_GET['q']
te donnera:
bogus
En d'autres termes, $_SERVER['REQUEST_URI']
contiendra le chemin de demande complet, y compris chaîne de requête . Et $_GET['q']
vous donnera la valeur du paramètre q
dans la chaîne de requête.
Dans le contexte de Drupal, la différence dépendra de l'activation ou non des URL propres.
Sans eux, $_SERVER['REQUEST_URI']
aura le chemin complet de la page comme appelé w//index.php
, tandis que $_GET["q"]
aura juste ce qui est assigné à q
.
Avec eux, ils seront presque identiques sans autres arguments, mais $_GET["q"]
manquera le premier /
. Jetez un œil vers la fin du fichier .htaccess par défaut pour voir ce qui se passe. Ils différeront également si des arguments supplémentaires sont passés dans la page, par exemple lorsqu'un pager est actif.
Le manuel PHP explique les deux assez bien:
http://php.net/manual/en/reserved.variables.server.php # REQUEST_URI
http://php.net/manual/en/reserved.variables.get.php # pour la variable $ _GET ["q"]