PHP超全局预定义数组$_SERVER解析 V1

来源:互联网 发布:php数组到字符串转换 编辑:程序博客网 时间:2024/05/16 10:29

PHP的$_SERVER变量中的几个重要值:


HTTP_HOST

REQUEST_METHOD

DOCUMENT_ROOT

SCRIPT_FILENAME
SCRIPT_NAME

REQUEST_URI
QUERY_STRING
PATH_INFO

SCRIPT_NAME
PHP_SELF


不使用别名时请求的URL
http://hostb/fanwei/index.php/mm/kk/?a=aaa&b=bbb/ccc/ddd
------------------------------------------------------------------------------------

'DOCUMENT_ROOT' => string '/usr/local/apache2/htdocs' (length=25)
'SCRIPT_FILENAME' => string '/usr/local/apache2/htdocs/fanwei/index.php' (length=42)
'QUERY_STRING' => string 'a=aaa&b=bbb/ccc/ddd' (length=19)
'REQUEST_URI' => string '/fanwei/index.php/mm/kk/?a=aaa&b=bbb/ccc/ddd' (length=44)
'SCRIPT_NAME' => string '/fanwei/index.php' (length=17)
'PATH_INFO' => string '/mm/kk/' (length=7)
'PATH_TRANSLATED' => string '/usr/local/apache2/htdocs/mm/kk/' (length=32)
'PHP_SELF' => string '/fanwei/index.php/mm/kk/' (length=24)

--------------------------------------------------------------------------------------
不使用别名alias的时候:
SCRIPT_FILENAME = DOCUMENT_ROOT + SCRIPT_NAME

REQUEST_RUI = SCRIPT_NAME + PATH_INFO + '?' + QUERY_STRING

PHP_SELF = SCRIPT_NAME + PATH_INFO

-------------------------------------------------------------------------------------






使用别名时请求的URL
http://hostb/fanwei/index.php/mm/kk/?a=aaa&b=bbb/ccc/ddd
-------------------------------------------------------------------------------------
apache的别名设置
Alias /fanwei /var/www/fanwei
<Directory /var/www/fanwei>
    Options Indexes FollowSymLinks ExecCGI
    AllowOverride all
    Require all granted
</Directory>


------------------------------------------------------------------------------------
$_SERVER 解析的结果
'DOCUMENT_ROOT' => string '/usr/local/apache2/htdocs' (length=25)

'CONTEXT_PREFIX' => string '/fanwei' (length=7)
'CONTEXT_DOCUMENT_ROOT' => string '/var/www/fanwei' (length=15)

'SCRIPT_FILENAME' => string '/var/www/fanwei/index.php' (length=25)

'QUERY_STRING' => string 'a=aaa&b=bbb/ccc/ddd' (length=19)
'REQUEST_URI' => string '/fanwei/index.php/mm/kk/?a=aaa&b=bbb/ccc/ddd' (length=44)
'SCRIPT_NAME' => string '/fanwei/index.php' (length=17)
'PATH_INFO' => string '/mm/kk/' (length=7)
'PATH_TRANSLATED' => string '/usr/local/apache2/htdocs/mm/kk/' (length=32)
'PHP_SELF' => string '/fanwei/index.php/mm/kk/' (length=24)

-------------------------------------------------------------------------------------

SCRIPT_FILENAME = CONTEXT_DOCUMENT_ROOT - CONTEXT_PREFIX + SCRIPT_NAME

REQUEST_RUI = SCRIPT_NAME + PATH_INFO + '?' + QUERY_STRING

PHP_SELF = SCRIPT_NAME + PATH_INFO


=======================================================================================
推导出结论:
 1、REQUEST_RUI = PHP_SELF + '?' + QUERST_STRING
 2、PHP_SELF 中可能会包含PATH_INFO的值
0 0
原创粉丝点击