9
votes

Quelle est la différence entre $ _Server ['path_info'] et $ _Server ['Orig_Path_Info']?

Quelle est la différence entre $ _ serveur ['path_info']] et _ serveur ['origine_path_info] ? Comment puis-je les utiliser?

Lorsque j'exécute print_r ($ _ serveur) , path_info et orig_path_info ne sont pas présents dans la matrice. Pourquoi pas? Comment puis-je leur activer?

J'ai lu le manuel PHP sur eux, mais je ne les comprends toujours pas.


0 commentaires

4 Réponses :


15
votes

La variable path_info n'est présentée que si vous invoquez un script PHP comme celui-ci: xxx

Ce n'est que le / hello_ilere Le script .php . Si vous n'inquisterez pas l'URL comme ça, il n'y aura pas de _ serveur ["path_info"] ["code> variable d'environnement.

Le porig _ Le préfixe est un peu rare. path_info est une variable standard de CGI-Environment et ne doit jamais être préfixée. Où avez-vous lu ça? (Il y avait des problèmes autour de PHP3 / PHP4 si vous avez invoqué l'interpréteur PHP via CGI-bin / - mais à peine quiconque n'a guère de telles configurations aujourd'hui.)

pour référence: http://www.ietf.org/rfc/rfc3875


2 commentaires

Je pense que c'est censé être orig_path_info . Il semble que certaines configurations de serveur créent ceci au lieu de chemin_info .


Ensuite, c'est certainement une configuration de gestionnaire CGI. PHP utiliserait le chemin_info sur script_filename dans certains paramètres. Le serveur est donc probablement configuré d'utiliser un nom alternatif pour path_info.



2
votes

path_info et origine_path_info sont rarement utilisés. Celles-ci font référence à n'importe quoi dans le chemin de la demande (la partie de l'URL à partir du premier / on) qui vient après le nom du fichier et la chaîne de requête. Généralement, vous n'aurez pas de chemin_info dans une URL.

Je suppose que vous voulez dire MOD_PATH_INFO et non PORIG_PATH_INFO. Les informations sur le chemin peuvent être manipulées par des choses comme les scripts mod_rewrite et PHP eux-mêmes. Orig_Path_Info est le chemin_info tel qu'il figurait dans la demande d'origine, avant que toute réécriture ou autre manipulation ait été effectuée à la chaîne.


3 commentaires

path_info est utilisé à la fois symfony et zf, donc je ne l'appellerais pas "rarement utilisé"


Juste pour ajouter à cela car je devais utiliser path_info et obtenir un peu inadapté par path_info apparemment non utilisé autant. Basé sur WordPress en utilisant cette interne: Github .Com / WordPress / WordPress / Blob / 4.4.4 / WP-comprend / ... . Il est juste de dire qu'il est utilisé Un lot affreux alors utilisez-le si vous avez besoin de !


"... cela vient après le nom du fichier et la chaîne de requête." - Notez que Path_info vient avant la chaîne de requête, pas après.



2
votes

avant 5,2,4, chemin_info était apparemment brisé (non défini) dans la configuration par défaut. Peut-être que c'est ça.

https://bugs.php.net/bug.php?id=31892

Le manuel PHP indique que orig_path_info est:

version originale de 'path_info' avant traitée par PHP.

Référence:
http://php.net/manual/fr/Reserv php


0 commentaires

6
votes

Essayez ceci:

$path_info = !empty($_SERVER['PATH_INFO']) ? $_SERVER['PATH_INFO'] : (!empty($_SERVER['ORIG_PATH_INFO']) ? $_SERVER['ORIG_PATH_INFO'] : '');


0 commentaires