为了使自己的程序在不同的平台中拥有更好的兼容性,很多时候我们都要获取当前Php的运行环境参数。比如我们常用到的:获取magic_quotes_gpc状态,来决定当表单提交时我们是否转义(addslashes)数据;设定max_execution_time来延长程序的执行时间;设定error_reporting使自己的项目在开发与运营阶段切换;设定memory_limit加大内存等等…

ini_set(string varname, string newvalue ) : 设定环境配置的参数

ini_get(string varname) : 获取环境配置的参数

参数列表如下
Name Default Changeable
com.allow_dcom “0″ PHP_INI_SYSTEM
com.autoregister_typelib “0″ PHP_INI_SYSTEM
com.autoregister_verbose “0″ PHP_INI_SYSTEM
com.autoregister_casesensitive “1″ PHP_INI_SYSTEM
com.typelib_file “” PHP_INI_SYSTEM
crack.default_dictionary NULL PHP_INI_SYSTEM
exif.encode_unicode “ISO-8859-15″ PHP_INI_ALL
exif.decode_unicode_motorola “UCS-2BE” PHP_INI_ALL
exif.decode_unicode_intel “UCS-2LE” PHP_INI_ALL
exif.encode_jis “” PHP_INI_ALL
exif.decode_jis_motorola “JIS” PHP_INI_ALL
exif.decode_jis_intel “JIS” PHP_INI_ALL
fbsql.allow_persistent “1″ PHP_INI_SYSTEM
fbsql.generate_warnings “0″ PHP_INI_SYSTEM
fbsql.autocommit “1″ PHP_INI_SYSTEM
fbsql.max_persistent “-1″ PHP_INI_SYSTEM
fbsql.max_links “128″ PHP_INI_SYSTEM
fbsql.max_connections “128″ PHP_INI_SYSTEM
fbsql.max_results “128″ PHP_INI_SYSTEM
fbsql.batchSize “1000″ PHP_INI_SYSTEM
fbsql.default_host NULL PHP_INI_SYSTEM
fbsql.default_user “_SYSTEM” PHP_INI_SYSTEM
fbsql.default_password “” PHP_INI_SYSTEM
fbsql.default_database “” PHP_INI_SYSTEM
fbsql.default_database_password “” PHP_INI_SYSTEM
hwapi.allow_persistent “0″ PHP_INI_SYSTEM
hyperwave.allow_persistent “0″ PHP_INI_SYSTEM
hyperwave.default_port “418″ PHP_INI_ALL
iconv.input_encoding ICONV_INPUT_ENCODING PHP_INI_ALL
iconv.output_encoding ICONV_OUTPUT_ENCODING PHP_INI_ALL
iconv.internal_encoding ICONV_INTERNAL_ENCODING PHP_INI_ALL
ifx.allow_persistent “1″ PHP_INI_SYSTEM
ifx.max_persistent “-1″ PHP_INI_SYSTEM
ifx.max_links “-1″ PHP_INI_SYSTEM
ifx.default_host NULL PHP_INI_SYSTEM
ifx.default_user NULL PHP_INI_SYSTEM
ifx.default_password NULL PHP_INI_SYSTEM
ifx.blobinfile “1″ PHP_INI_ALL
ifx.textasvarchar “0″ PHP_INI_ALL
ifx.byteasvarchar “0″ PHP_INI_ALL
ifx.charasvarchar “0″ PHP_INI_ALL
ifx.nullformat “0″ PHP_INI_ALL
ingres.allow_persistent “1″ PHP_INI_SYSTEM
ingres.max_persistent “-1″ PHP_INI_SYSTEM
ingres.max_links “-1″ PHP_INI_SYSTEM
ingres.default_database NULL PHP_INI_ALL
ingres.default_user NULL PHP_INI_ALL
ingres.default_password NULL PHP_INI_ALL
ibase.allow_persistent “1″ PHP_INI_SYSTEM
ibase.max_persistent “-1″ PHP_INI_SYSTEM
ibase.max_links “-1″ PHP_INI_SYSTEM
ibase.default_user NULL PHP_INI_ALL
ibase.default_password NULL PHP_INI_ALL
ibase.timestampformat “%m/%d/%Y%H:%M:%S” PHP_INI_ALL
ibase.dateformat “%m/%d/%Y” PHP_INI_ALL
ibase.timeformat “%H:%M:%S” PHP_INI_ALL
java.class.path NULL PHP_INI_ALL
java.home NULL PHP_INI_ALL
java.library.path NULL PHP_INI_ALL
java.library JAVALIB PHP_INI_ALL
java.library NULL PHP_INI_ALL
ldap.max_links “-1″ PHP_INI_SYSTEM
mbstring.detect_order NULL PHP_INI_ALL
mbstring.http_input NULL PHP_INI_ALL
mbstring.http_output NULL PHP_INI_ALL
mbstring.internal_encoding NULL PHP_INI_ALL
mbstring.substitute_character NULL PHP_INI_ALL
mbstring.func_overload “0″ PHP_INI_SYSTEM
mcrypt.algorithms_dir NULL PHP_INI_ALL
mcrypt.modes_dir NULL PHP_INI_ALL
mime_magic.magicfile “/usr/share/misc/magic.mime” PHP_INI_SYSTEM
mssql.allow_persistent “1″ PHP_INI_SYSTEM
mssql.max_persistent “-1″ PHP_INI_SYSTEM
mssql.max_links “-1″ PHP_INI_SYSTEM
mssql.max_procs “25″ PHP_INI_ALL
mssql.min_error_severity “10″ PHP_INI_ALL
mssql.min_message_severity “10″ PHP_INI_ALL
mssql.compatability_mode “0″ PHP_INI_ALL
mssql.connect_timeout “5″ PHP_INI_ALL
mssql.timeout “60″ PHP_INI_ALL
mssql.textsize “-1″ PHP_INI_ALL
mssql.textlimit “-1″ PHP_INI_ALL
mssql.batchsize “0″ PHP_INI_ALL
mssql.datetimeconvert “1″ PHP_INI_ALL
mssql.secure_connection “0″ PHP_INI_SYSTEM
mysql.allow_persistent “1″ PHP_INI_SYSTEM
mysql.max_persistent “-1″ PHP_INI_SYSTEM
mysql.max_links “-1″ PHP_INI_SYSTEM
mysql.default_host NULL PHP_INI_ALL
mysql.default_user NULL PHP_INI_ALL
mysql.default_password NULL PHP_INI_ALL
mysql.default_port NULL PHP_INI_ALL
mysql.default_socket NULL PHP_INI_ALL
ncurses.value “42″ PHP_INI_ALL
ncurses.string “foobar” PHP_INI_ALL
odbc.allow_persistent “1″ PHP_INI_SYSTEM
odbc.max_persistent “-1″ PHP_INI_SYSTEM
odbc.max_links “-1″ PHP_INI_SYSTEM
odbc.default_db NULL PHP_INI_ALL
odbc.default_user NULL PHP_INI_ALL
odbc.default_pw NULL PHP_INI_ALL
odbc.defaultlrl “4096″ PHP_INI_ALL
odbc.defaultbinmode “1″ PHP_INI_ALL
odbc.check_persistent “1″ PHP_INI_SYSTEM
pfpro.defaulthost “test.signio.com”  
pfpro.defaulthost “test-payflow.verisign.com”  
pfpro.defaultport “443″ PHP_INI_ALL
pfpro.defaulttimeout “30″ PHP_INI_ALL
pfpro.proxyaddress “” PHP_INI_ALL
pfpro.proxyport “” PHP_INI_ALL
pfpro.proxylogon “” PHP_INI_ALL
pfpro.proxypassword “” PHP_INI_ALL
pgsql.allow_persistent “1″ PHP_INI_SYSTEM
pgsql.max_persistent “-1″ PHP_INI_SYSTEM
pgsql.max_links “-1″ PHP_INI_SYSTEM
pgsql.auto_reset_persistent “0″ PHP_INI_SYSTEM
pgsql.ignore_notice “0″ PHP_INI_ALL
pgsql.log_notice “0″ PHP_INI_ALL
session.save_path “/tmp” PHP_INI_ALL
session.name “PHPSESSID” PHP_INI_ALL
session.save_handler “files” PHP_INI_ALL
session.auto_start “0″ PHP_INI_ALL
session.gc_probability “1″ PHP_INI_ALL
session.gc_divisor “100″ PHP_INI_ALL
session.gc_maxlifetime “1440″ PHP_INI_ALL
session.serialize_handler “php” PHP_INI_ALL
session.cookie_lifetime “0″ PHP_INI_ALL
session.cookie_path “/” PHP_INI_ALL
session.cookie_domain “” PHP_INI_ALL
session.cookie_secure “” PHP_INI_ALL
session.use_cookies “1″ PHP_INI_ALL
session.use_only_cookies “0″ PHP_INI_ALL
session.referer_check “” PHP_INI_ALL
session.entropy_file “” PHP_INI_ALL
session.entropy_length “0″ PHP_INI_ALL
session.cache_limiter “nocache” PHP_INI_ALL
session.cache_expire “180″ PHP_INI_ALL
session.use_trans_sid “0″ PHP_INI_SYSTEM
PHP_INI_PERDIR
session.encode_sources “globals,track” PHP_INI_ALL
assert.active “1″ PHP_INI_ALL
assert.bail “0″ PHP_INI_ALL
assert.warning “1″ PHP_INI_ALL
assert.callback NULL PHP_INI_ALL
assert.quiet_eval “0″ PHP_INI_ALL
safe_mode_protected_env_vars SAFE_MODE_PROTECTED_ENV_VARS PHP_INI_SYSTEM
safe_mode_allowed_env_vars SAFE_MODE_ALLOWED_ENV_VARS PHP_INI_SYSTEM
url_rewriter.tags “a=href,area=href,
frame=src,
form=fakeentry”
PHP_INI_ALL
sybct.allow_persistent “1″ PHP_INI_SYSTEM
sybct.max_persistent “-1″ PHP_INI_SYSTEM
sybct.max_links “-1″ PHP_INI_SYSTEM
sybct.min_server_severity “10″ PHP_INI_ALL
sybct.min_client_severity “10″ PHP_INI_ALL
sybct.hostname NULL PHP_INI_ALL
vpopmail.directory “” PHP_INI_ALL
zlib.output_compression “0″ PHP_INI_SYSTEM
PHP_INI_PERDIR
zlib.output_compression_level “-1″ PHP_INI_ALL
define_syslog_variables “0″ PHP_INI_ALL
highlight.bg HL_BG_COLOR PHP_INI_ALL
highlight.comment HL_COMMENT_COLOR PHP_INI_ALL
highlight.default HL_DEFAULT_COLOR PHP_INI_ALL
highlight.html HL_HTML_COLOR PHP_INI_ALL
highlight.keyword HL_KEYWORD_COLOR PHP_INI_ALL
highlight.string HL_StrING_COLOR PHP_INI_ALL
allow_call_time_pass_reference “1″ PHP_INI_SYSTEM
PHP_INI_PERDIR
asp_tags “0″ PHP_INI_SYSTEM
PHP_INI_PERDIR
display_errors “1″ PHP_INI_ALL
display_startup_errors “0″ PHP_INI_ALL
enable_dl “1″ PHP_INI_SYSTEM
expose_php “1″ PHP_INI_SYSTEM
html_errors “1″ PHP_INI_ALL
xmlrpc_errors “0″ PHP_INI_SYSTEM
xmlrpc_error_number “0″ PHP_INI_ALL
ignore_user_abort “0″ PHP_INI_ALL
implicit_flush “0″ PHP_INI_ALL
log_errors “0″ PHP_INI_ALL
log_errors_max_len “1024″ PHP_INI_ALL
ignore_repeated_errors “0″ PHP_INI_ALL
ignore_repeated_source “0″ PHP_INI_ALL
magic_quotes_gpc “1″ PHP_INI_PERDIR
PHP_INI_SYSTEM
magic_quotes_runtime “0″ PHP_INI_ALL
magic_quotes_sybase “0″ PHP_INI_ALL
output_buffering “0″ PHP_INI_PERDIR
PHP_INI_SYSTEM
output_handler NULL PHP_INI_PERDIR
PHP_INI_SYSTEM
register_argc_argv “1″ PHP_INI_PERDIR
PHP_INI_SYSTEM
register_globals “0″ PHP_INI_PERDIR
PHP_INI_SYSTEM
safe_mode “1″ PHP_INI_SYSTEM
safe_mode “0″ PHP_INI_SYSTEM
safe_mode_include_dir NULL PHP_INI_SYSTEM
safe_mode_gid “0″ PHP_INI_SYSTEM
short_open_tag DEFAULT_SHORT_OPEN_TAG PHP_INI_SYSTEM
PHP_INI_PERDIR
sql.safe_mode “0″ PHP_INI_SYSTEM
track_errors “0″ PHP_INI_ALL
y2k_compliance “0″ PHP_INI_ALL
unserialize_callback_func NULL PHP_INI_ALL
arg_separator.output “&” PHP_INI_ALL
arg_separator.input “&” PHP_INI_SYSTEM
PHP_INI_PERDIR
auto_append_file NULL PHP_INI_SYSTEM
PHP_INI_PERDIR
auto_prepend_file NULL PHP_INI_SYSTEM
PHP_INI_PERDIR
doc_root NULL PHP_INI_SYSTEM
default_charset SAPI_DEFAULT_CHARSET PHP_INI_ALL
default_mimetype SAPI_DEFAULT_MIMETYPE PHP_INI_ALL
error_log NULL PHP_INI_ALL
extension_dir PHP_EXTENSION_DIR PHP_INI_SYSTEM
gpc_order “GPC” PHP_INI_ALL
include_path PHP_INCLUDE_PAth PHP_INI_ALL
max_execution_time “30″ PHP_INI_ALL
open_basedir NULL PHP_INI_SYSTEM
safe_mode_exec_dir “1″ PHP_INI_SYSTEM
upload_max_filesize “2M” PHP_INI_SYSTEM
PHP_INI_PERDIR
file_uploads “1″ PHP_INI_SYSTEM
post_max_size “8M” PHP_INI_SYSTEM
PHP_INI_PERDIR
upload_tmp_dir NULL PHP_INI_SYSTEM
user_dir NULL PHP_INI_SYSTEM
variables_order NULL PHP_INI_ALL
error_append_string NULL PHP_INI_ALL
error_prepend_string NULL PHP_INI_ALL
SMTP “localhost” PHP_INI_ALL
smtp_port 25 PHP_INI_ALL
browscap NULL PHP_INI_SYSTEM
error_reporting NULL PHP_INI_ALL
memory_limit “8M” PHP_INI_ALL
precision “14″ PHP_INI_ALL
sendmail_from NULL PHP_INI_ALL
sendmail_path DEFAULT_SENDMAIL_PAth PHP_INI_SYSTEM
disable_classes “” php.ini only
disable_functions “” php.ini only
allow_url_fopen “1″ PHP_INI_ALL
always_populate_raw_post_data “0″ PHP_INI_SYSTEM
PHP_INI_PERDIR
xbithack “0″ PHP_INI_ALL
engine “1″ PHP_INI_ALL
last_modified “0″ PHP_INI_ALL
child_terminate “0″ PHP_INI_ALL
async_send “0″ PHP_INI_ALL

可操作范围见下表:

操作范围
Constant Value Meaning
PHP_INI_USER 1 Entry can be set in user scripts
PHP_INI_PERDIR 2 Entry can be set in php.ini, .htaccess or httpd.conf
PHP_INI_SYSTEM 4 Entry can be set in php.ini or httpd.conf
PHP_INI_ALL 7 Entry can be set anywhere