ini_set ini_get 可操作配置参数列表

为了使自己的程序在不同的平台中拥有更好的兼容性,很多时候我们都要获取当前Php的运行环境参数。

 

比如我们常用到的:

 

获取 magic_quotes_gpc 状态,来决定当表单提交时我们是否转义(addslashes)数据;

设定 max_execution_time 来延长 程序的执行时间;

设定 error_reporting 使自己的项目在开发与运营阶段切换;

设定 memory_limit 加大内存等等…

 

Php代码
  1. ini_set (string varname, string newvalue ) :  //设定环境配置的参数   
  2. ini_get (string varname) :  //获取环境配置的参数   
Php代码   收藏代码
  1. ini_set(string varname, string newvalue ) : //设定环境配置的参数  
  2. ini_get(string varname) : //获取环境配置的参数  

 

  PHP ini_set函数是设置选项中的值,在执行函数后生效,脚本结束的时候,这个设置也失效。不是所有的选项都能被改函数设置的。具体那些值能够设置,可以查看手册中的列表。

 

 就是能够设置php.ini中的选项值比如,display_error选项关闭 了,但是你要显示程序中的错误信息,方便你调试程序,那么就可以使用PHP ini_set函数:

 

Php代码
  1. ini_set ( 'display_errors' ,  'On' );  
Php代码   收藏代码
  1. ini_set('display_errors', 'On');  
 

 那么在你这个页面的程序都会显示错误信息了,而且你还可以使用error_reporting来设置显示的错误信息级别。

 如果你需要增加脚本执行时间,那么可以设置:

 

 

Php代码
  1. ini_set ( 'max_execution_time' ,  '180' );  
Php代码   收藏代码
  1. ini_set('max_execution_time', '180');  
 

  那么脚本执行时间就由默认的30秒变为180秒,当然,你也可以使用set_time_limit()来设置。

 

  其实你把PHP ini_set函数和ini_get结合使的话,非常好。比如你想在配置文件里添加自己的包含文件路径,但是你有没有权限更改php.ini,那么你可以 结合两个函数:

 

 

Php代码
  1. ini_set ( 'include_path' , ini_get ( 'include_path' ). ':/your_include_dir:' );  
Php代码   收藏代码
  1. ini_set('include_path',ini_get('include_path').':/your_include_dir:');  
 

 PHP配置函数ini_get()相信很多人都使过,就是获取配置文件中某一个选项的值,如果是true值就返回1,如果是false值就返回0,字符串就返回字符串。

 

  比如手册中的例子:

 

Php代码
  1. <?php   
  2. /* Our php.ini contains the following settings: display_errors = On register_globals = Off post_max_size = 8M */    
  3.   
  4. echo   'display_errors = '  .  ini_get ( 'display_errors' ) .  " " ;  //显示错误是否打开   
  5. echo   'register_globals = '  .  ini_get ( 'register_globals' ) .  " " ;  //全局变量是否打开    
  6. echo   'post_max_size = '  .  ini_get ( 'post_max_size' ) .  " " ;  //最多能提交的文件大小    
  7. echo   'post_max_size+1 = '  . ( ini_get ( 'post_max_size' )+1) .  " " ;   
  8.   
  9. ?>  
Php代码   收藏代码
  1. <?php   
  2. /* Our php.ini contains the following settings: display_errors = On register_globals = Off post_max_size = 8M */   
  3.   
  4. echo 'display_errors = ' . ini_get('display_errors') . " "; //显示错误是否打开   
  5. echo 'register_globals = ' . ini_get('register_globals') . " "; //全局变量是否打开   
  6. echo 'post_max_size = ' . ini_get('post_max_size') . " "; //最多能提交的文件大小   
  7. echo 'post_max_size+1 = ' . (ini_get('post_max_size')+1) . " ";   
  8.   
  9. ?>  

 

  输出:

 

  display_errors = 1

  register_globals = 0

  post_max_size = 8M

  post_max_size+1 = 9

 

  PHP配置函数ini_get()主要是为了获取配置文件,可以方便你很多操作。 比如你想操作字符串过滤,但是又不清楚 magic_quotes_gpc有没有打开,所以你就可以这样写一个函数:

 

 

Php代码
  1. <?php   
  2.  /* 字符串过滤函数 */    
  3. function  stringFilter( $str ) {   
  4.     if  ( ini_get ( 'magic_quotes_gpc)' ) {  return   $str ; }  else  {  return   addslashes ( $str ); }   
  5. }  
  6. ?>  
Php代码   收藏代码
  1. <?php   
  2.  /* 字符串过滤函数 */   
  3. function stringFilter($str) {   
  4.     if (ini_get('magic_quotes_gpc)') { return $str; } else { return addslashes($str); }   
  5. }  
  6. ?>  

 

  当然,如果你无法知道你的全局变量是否打开,也可以定制这样的函数:

 

Php代码
  1. <?php   
  2. /* 变量检测函数 */    
  3. function  getGetVar( $var ) {   
  4.     if  ( ini_set ( 'register_gobals' )){  return   $var ; }  else  {  return   $_GET[ 'var' ]; }   
  5. }  
  6. ?>  
Php代码   收藏代码
  1. <?php   
  2. /* 变量检测函数 */   
  3. function getGetVar($var) {   
  4.     if (ini_set('register_gobals')){ return $var; } else { return $_GET['var']; }   
  5. }  
  6. ?>  

 

  当然,你可以用PHP配置函数ini_get()做很多用途,自己慢慢体会。

 

参数列表如下
 
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_dictionaryNULLPHP_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_hostNULLPHP_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_encodingICONV_INPUT_ENCODINGPHP_INI_ALL
iconv.output_encodingICONV_OUTPUT_ENCODINGPHP_INI_ALL
iconv.internal_encodingICONV_INTERNAL_ENCODINGPHP_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_hostNULLPHP_INI_SYSTEM
ifx.default_userNULLPHP_INI_SYSTEM
ifx.default_passwordNULLPHP_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_databaseNULLPHP_INI_ALL
ingres.default_userNULLPHP_INI_ALL
ingres.default_passwordNULLPHP_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_userNULLPHP_INI_ALL
ibase.default_passwordNULLPHP_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.pathNULLPHP_INI_ALL
java.homeNULLPHP_INI_ALL
java.library.pathNULLPHP_INI_ALL
java.libraryJAVALIBPHP_INI_ALL
java.libraryNULLPHP_INI_ALL
ldap.max_links"-1"PHP_INI_SYSTEM
mbstring.detect_orderNULLPHP_INI_ALL
mbstring.http_inputNULLPHP_INI_ALL
mbstring.http_outputNULLPHP_INI_ALL
mbstring.internal_encodingNULLPHP_INI_ALL
mbstring.substitute_characterNULLPHP_INI_ALL
mbstring.func_overload"0"PHP_INI_SYSTEM
mcrypt.algorithms_dirNULLPHP_INI_ALL
mcrypt.modes_dirNULLPHP_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_hostNULLPHP_INI_ALL
mysql.default_userNULLPHP_INI_ALL
mysql.default_passwordNULLPHP_INI_ALL
mysql.default_portNULLPHP_INI_ALL
mysql.default_socketNULLPHP_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_dbNULLPHP_INI_ALL
odbc.default_userNULLPHP_INI_ALL
odbc.default_pwNULLPHP_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.callbackNULLPHP_INI_ALL
assert.quiet_eval"0"PHP_INI_ALL
safe_mode_protected_env_varsSAFE_MODE_PROTECTED_ENV_VARSPHP_INI_SYSTEM
safe_mode_allowed_env_varsSAFE_MODE_ALLOWED_ENV_VARSPHP_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.hostnameNULLPHP_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.bgHL_BG_COLORPHP_INI_ALL
highlight.commentHL_COMMENT_COLORPHP_INI_ALL
highlight.defaultHL_DEFAULT_COLORPHP_INI_ALL
highlight.htmlHL_HTML_COLORPHP_INI_ALL
highlight.keywordHL_KEYWORD_COLORPHP_INI_ALL
highlight.stringHL_StrING_COLORPHP_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_handlerNULLPHP_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_dirNULLPHP_INI_SYSTEM
safe_mode_gid"0"PHP_INI_SYSTEM
short_open_tagDEFAULT_SHORT_OPEN_TAGPHP_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_funcNULLPHP_INI_ALL
arg_separator.output"&"PHP_INI_ALL
arg_separator.input"&"PHP_INI_SYSTEM
PHP_INI_PERDIR
auto_append_fileNULLPHP_INI_SYSTEM
PHP_INI_PERDIR
auto_prepend_fileNULLPHP_INI_SYSTEM
PHP_INI_PERDIR
doc_rootNULLPHP_INI_SYSTEM
default_charsetSAPI_DEFAULT_CHARSETPHP_INI_ALL
default_mimetypeSAPI_DEFAULT_MIMETYPEPHP_INI_ALL
error_logNULLPHP_INI_ALL
extension_dirPHP_EXTENSION_DIRPHP_INI_SYSTEM
gpc_order"GPC"PHP_INI_ALL
include_pathPHP_INCLUDE_PAthPHP_INI_ALL
max_execution_time"30"PHP_INI_ALL
open_basedirNULLPHP_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_dirNULLPHP_INI_SYSTEM
user_dirNULLPHP_INI_SYSTEM
variables_orderNULLPHP_INI_ALL
error_append_stringNULLPHP_INI_ALL
error_prepend_stringNULLPHP_INI_ALL
SMTP"localhost"PHP_INI_ALL
smtp_port25PHP_INI_ALL
browscapNULLPHP_INI_SYSTEM
error_reportingNULLPHP_INI_ALL
memory_limit"8M"PHP_INI_ALL
precision"14"PHP_INI_ALL
sendmail_fromNULLPHP_INI_ALL
sendmail_pathDEFAULT_SENDMAIL_PAthPHP_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_USER1Entry can be set in user scripts
PHP_INI_PERDIR2Entry can be set in php.ini, .htaccess or httpd.conf
PHP_INI_SYSTEM4Entry can be set in php.ini or httpd.conf
PHP_INI_ALL7Entry can be set anywhere

 

 

常量 值 含义

 

PHP_INI_USER1该项目可以在用户脚本中设定
PHP_INI_PERDIR2该项目可以在 php.ini .htaccess 或者 httpd.conf 中设定
PHP_INI_SYSTEM4该项目可以在 php.ini 或 httpd.conf 中设定
PHP_INI_ALL7该项目可以在任何地方设定
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值