数据处理

表格 H-4. 数据处理配置选项

名称默认值类型
track-vars"On"PHP_INI_??
arg_separator.output"&"PHP_INI_ALL
arg_separator.input"&"PHP_INI_SYSTEM|PHP_INI_PERDIR
variables_order"EGPCS"PHP_INI_ALL
register_globals"Off"PHP_INI_PERDIR|PHP_INI_SYSTEM
register_argc_argv"On"PHP_INI_PERDIR|PHP_INI_SYSTEM
register_long_arrays"On"PHP_INI_PERDIR|PHP_INI_SYSTEM
post_max_size"8M"PHP_INI_SYSTEM|PHP_INI_PERDIR
gpc_order"GPC"PHP_INI_ALL
auto_prepend_file""PHP_INI_SYSTEM|PHP_INI_PERDIR
auto_append_file""PHP_INI_SYSTEM|PHP_INI_PERDIR
default_mimetype"text/html"PHP_INI_ALL
default_charset"iso-8859-1"PHP_INI_ALL
always_populate_raw_post_data"0"PHP_INI_SYSTEM|PHP_INI_PERDIR
allow_webdav_methods"0"PHP_INI_SYSTEM|PHP_INI_PERDIR

以下是该配置选项的简要解释。

track_vars boolean

如果激活,则环境变量,GET,POST,Cookie 和 Server 变量都能够分别在全局关联数组中找到:$_ENV$_GET$_POST$_COOKIE$_SERVER

注意自 PHP 4.0.3 起,track_vars 总是打开的。

arg_separator.output string

PHP 所产生的 URL 中来分隔参数的分隔符。

arg_separator.input string

PHP 用来将 URL 解析为变量的分隔符列表。

注: 本指令中的每个字符都会被当成分隔符!

variables_order string

设定 EGPCS(Environment,GET,POST,Cookie,Server)变量解析的顺序。默认设定为“EGPCS”。举例说,将其设为“GP”,会导致 PHP 完全忽略环境变量,cookies 和 server 变量,并用 GET 方法的变量覆盖 POST 方法的同名变量。

参见 register_globals

register_globals boolean

决定是否将 EGPCS(Environment,GET,POST,Cookie,Server)变量注册为全局变量。例如,如果 register_globals = on,那么 URL http://www.example.com/test.php?id=3 将产生 $id。或者从 $_SERVER['DOCUMENT_ROOT'] 得来 $DOCUMENT_ROOT。如果不想用户数据把全局域弄乱的话可以将此选项关闭。自 PHP 4.2.0 开始,本指令默认为 off。推荐使用 PHP 的预定义变量来替代,例如超全局变量$_ENV$_GET$_POST$_COOKIE$_SERVER。相关信息请阅读安全一章中的使用 register_globals

请注意 register_globals 不能在运行时设定(ini_set()),尽管如以上说明在主机允许时可以用 .htaccess。一个 .htaccess 项目的例子:php_flag register_globals on

注: register_globalsvariables_order 指令的影响。

register_argc_argv boolean

决定 PHP 是否定义 argv & argc 变量(可能包含有 GET 信息)。

参见命令行方式。此外,本选项自 PHP 4.0.0 起可用,在此之前总是“On”。

register_long_arrays boolean

设定 PHP 是否注册已过时的 $HTTP_*_VARS 之类的预定义变量。如果为 On(默认值),则类似 $HTTP_GET_VARS 的 PHP 变量会被注册。如果不使用,为性能考虑建议关闭此选项,而使用超全局数组例如 $_GET 替代之。

本指令自 PHP 5.0.0 起可用。

post_max_size integer

设定 POST 数据所允许的最大大小。此设定也影响到文件上传。要上传大文件,该值必须大于 upload_max_filesize

如果配置脚本中激活了内存限制,memory_limit 也会影响文件上传。通常说,memory_limit 应该比 post_max_size 要大。

gpc_order string

设定 GET/POST/COOKIE 变量解析的顺序,默认为“GPC”。举例说,将其设为“GP”,会导致 PHP 完全忽略 cookie 变量,并用 GET 方法的变量覆盖 POST 方法的同名变量。

注: 本选项不能用于 PHP 4。用 variables_order 替代之。

auto_prepend_file string

指定在主文件之前自动解析的文件名。该文件就像调用了 include() 函数一样被包含进来,因此会使用 include_path

特殊值 none 禁止了自动前缀。

auto_append_file string

指定在主文件之后自动解析的文件名。该文件就像调用了 include() 函数一样被包含进来,因此会使用 include_path

特殊值 none 禁止了自动后缀。

注: 如果脚本通过 exit() 终止,则自动后缀不会发生。

default_mimetype string

default_charset string

自 4.0b4 起,PHP 总是默认在 HTTP 信息头 Content-type: 中输出字符编码。要禁止发送字符集,将本选项设为空即可。

always_populate_raw_post_data boolean

总是增加 $HTTP_RAW_POST_DATA 变量。

allow_webdav_methods boolean

允许在 PHP 脚本中处理 WebDAV 的 HTTP 请求(例如 PROPFIND,PROPPATCH,MOVE,COPY 等)。如果要取得这些请求的 POST 数据,也要设定 always_populate_raw_post_data

参见 magic_quotes_gpcmagic-quotes-runtimemagic_quotes_sybase