Maison > développement back-end > tutoriel php > 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
Libérer: 2024-11-02 07:28:02
original
988 Les gens l'ont consulté

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 de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal