Maison > développement back-end > tutoriel php > En quoi PHP_SELF, PATH_INFO, SCRIPT_NAME et REQUEST_URI diffèrent-ils dans la détermination de l'adresse d'un script ?

En quoi PHP_SELF, PATH_INFO, SCRIPT_NAME et REQUEST_URI diffèrent-ils dans la détermination de l'adresse d'un script ?

Linda Hamilton
Libérer: 2024-11-02 06:48:02
original
1052 Les gens l'ont consulté

How do PHP_SELF, PATH_INFO, SCRIPT_NAME, and REQUEST_URI Differ in Determining a Script's Address?

Détermination de l'adresse d'un script en PHP : PHP_SELF, PATH_INFO, SCRIPT_NAME, REQUEST_URI

Lors du développement d'applications PHP, comprendre les différences entre PHP_SELF, PATH_INFO , SCRIPT_NAME et REQUEST_URI sont essentiels pour déterminer de manière fiable l'adresse d'un script.

PHP_SELF représente l'URL complète du script, y compris la chaîne de requête. Dans la plupart des cas, il s'agit de l'option la plus fiable pour récupérer l'adresse complète d'un script. Cependant, si une requête passe par les directives mod_rewrite, PHP_SELF peut ne pas refléter l'URL réellement demandée.

PATH_INFO stocke la partie de l'URL après le nom du script. Ces informations deviennent disponibles lors de l'utilisation de mod_rewrite, mais elles peuvent être vides dans certaines situations.

SCRIPT_NAME contient le nom de fichier réel du script en cours d'exécution, à l'exclusion de toute information de chemin. Contrairement à PHP_SELF, SCRIPT_NAME n'est pas affecté par mod_rewrite.

REQUEST_URI capture l'URI complet de la requête, y compris le chemin, la chaîne de requête et tous les fragments d'ancrage. C'est utile lorsque vous travaillez avec des serveurs proxy ou lorsque vous traitez des redirections.

Pour illustrer les différences, voici quelques exemples :

  • Exemple 1 : Lorsque vous utilisez mod_rewrite pour rediriger http://example.com/test.php/foo/bar vers http://example.com/index.php/test.php/foo/bar :

    • PHP_SELF : /test.php/foo/bar
    • SCRIPT_NAME : /test.php
    • PATH_INFO : /foo/bar
  • Exemple 2 : Lors de l'utilisation d'une chaîne de requête non vide dans http://example.com/test.php?foo=bar:

    • PHP_SELF : /test.php? foo=bar
    • SCRIPT_NAME : /test.php
    • REQUEST_URI : /test.php?foo=bar
  • Exemple 3 : Lors de l'utilisation de mod_rewrite pour rediriger http://example.com/test.php vers http://example.com/test2.php :

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

En comprenant ces différences, vous pouvez sélectionner la variable la plus appropriée pour vos besoins spécifiques, garantissant un accès fiable à l'adresse d'un script, quelle que soit la configuration du serveur Web ou la manipulation de l'URL.

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal