$ _SERVER ['PATH_INFO']和$ _SERVER ['ORIG_PATH_INFO']有什么区别?

zhu*_*hou 8 php apache

$_SERVER['PATH_INFO']和之间有什么区别$_SERVER['ORIG_PATH_INFO']?我该如何使用它们?

当我跑print_r($_SERVER),PATH_INFO并且ORIG_PATH_INFO不在阵列中.为什么不?我该如何启用它们?

我已经阅读了关于它们的PHP手册,但仍然不理解它们.

mar*_*rio 15

PATH_INFO只有在调用这样的PHP脚本时才会出现该变量:

http://www.example.com/phpinfo.php/HELLO_THERE
Run Code Online (Sandbox Code Playgroud)

它只是剧本/HELLO_THERE之后的部分.php.如果您不像这样调用URL,则不会有$_SERVER["PATH_INFO"]环境变量.

PORIG_前缀是有点少见.PATH_INFO是一个标准的CGI环境变量,永远不应该加前缀.你在哪里读到的?(如果您通过cgi-bin /调用PHP解释器,PHP3/PHP4存在一些问题 - 但今天几乎没有人有这样的设置.)

供参考:http://www.ietf.org/rfc/rfc3875


小智 6

试试这个 :

$path_info = !empty($_SERVER['PATH_INFO']) ? $_SERVER['PATH_INFO'] : (!empty($_SERVER['ORIG_PATH_INFO']) ? $_SERVER['ORIG_PATH_INFO'] : '');
Run Code Online (Sandbox Code Playgroud)