Maison  >  Article  >  développement back-end  >  Quelles sont les principales différences entre PHP_SELF, PATH_INFO, SCRIPT_NAME et REQUEST_URI ?

Quelles sont les principales différences entre PHP_SELF, PATH_INFO, SCRIPT_NAME et REQUEST_URI ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-02 07:28:02867parcourir

What are the key differences between PHP_SELF, PATH_INFO, SCRIPT_NAME, and REQUEST_URI?

Comprendre PHP_SELF, PATH_INFO, SCRIPT_NAME et REQUEST_URI**

Lors du développement d'applications PHP, il est essentiel de comprendre les différences entre ces variables de serveur . Voici un aperçu de leurs utilisations :

PHP_SELF

  • Pointe normalement vers le fichier de script actuel, par ex. /index.php/faq/whatever
  • Dans CodeIgniter, c'est toujours index.php, car les requêtes sont acheminées vers le contrôleur principal.

PATH_INFO

  • Contient les informations de chemin après le nom du script (sans compter les paramètres de requête), par exemple. /faq/whatever
  • Utile pour accéder à des sections spécifiques d'un URI.

SCRIPT_NAME

  • Pointe vers le fichier de script PHP en cours d'exécution, par ex. /test.php
  • Contrairement à PHP_SELF, il n'inclut aucune information de chemin ni paramètre de requête.

REQUEST_URI

  • Représente l'URI complet de la requête, y compris les informations de chemin et les paramètres de requête, par ex. /test.php?foo=bar
  • Utile pour déterminer l'URL complète sans accéder à la configuration du serveur.

Différences pratiques

Exemple 1 : PHP_SELF vs SCRIPT_NAME

Si l'URL demandée est sous la forme /test.php/foo/bar :

  • PHP_SELF : /test.php/foo/bar
  • SCRIPT_NAME : /test.php

Exemple 2 : REQUEST_URI vs SCRIPT_NAME

Si une chaîne de requête non vide est saisie dans l'URL :

  • SCRIPT_NAME : /test.php
  • REQUEST_URI : /test.php?foo=bar

Exemple 3 : REQUEST_URI vs SCRIPT_NAME avec Apache Mod Rewrite

Avec la redirection côté serveur, par exemple, /test.php est réécrit en /test2.php :

  • REQUEST_URI : / test.php
  • SCRIPT_NAME : /test2.php

Exemple 4 : REQUEST_URI vs SCRIPT_NAME avec gestion des erreurs

  • Avec Apache mod_rewrite, une erreur 404 dans /test.php peut entraîner :

    • REQUEST_URI : /test.php
    • SCRIPT_NAME : /404error.php

Le choix de la variable de serveur à utiliser dépend des exigences spécifiques de l'application. . Par exemple, si vous devez accéder aux informations de chemin sans paramètres de requête, PATH_INFO conviendrait. Si vous souhaitez l'URI complet de la demande, REQUEST_URI fournit ces informations.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn