ini_set ini_get 可操作配置参数列表
为了使自己的程序在不同的平台中拥有更好的兼容性,很多时候我们都要获取当前Php的运行环境参数。
比如我们常用到的:
获取 magic_quotes_gpc 状态,来决定当表单提交时我们是否转义(addslashes)数据;
设定 max_execution_time 来延长 程序的执行时间;
设定 error_reporting 使自己的项目在开发与运营阶段切换;
设定 memory_limit 加大内存等等…
- ini_set (string varname, string newvalue ) : //设定环境配置的参数
- ini_get (string varname) : //获取环境配置的参数
- ini_set(string varname, string newvalue ) : //设定环境配置的参数
- ini_get(string varname) : //获取环境配置的参数
PHP ini_set函数是设置选项中的值,在执行函数后生效,脚本结束的时候,这个设置也失效。不是所有的选项都能被改函数设置的。具体那些值能够设置,可以查看手册中的列表。
就是能够设置php.ini中的选项值比如,display_error选项关闭 了,但是你要显示程序中的错误信息,方便你调试程序,那么就可以使用PHP ini_set函数:
- ini_set ( 'display_errors' , 'On' );
- ini_set('display_errors', 'On');
那么在你这个页面的程序都会显示错误信息了,而且你还可以使用error_reporting来设置显示的错误信息级别。
如果你需要增加脚本执行时间,那么可以设置:
- ini_set ( 'max_execution_time' , '180' );
- ini_set('max_execution_time', '180');
那么脚本执行时间就由默认的30秒变为180秒,当然,你也可以使用set_time_limit()来设置。
其实你把PHP ini_set函数和ini_get结合使的话,非常好。比如你想在配置文件里添加自己的包含文件路径,但是你有没有权限更改php.ini,那么你可以 结合两个函数:
- ini_set ( 'include_path' , ini_get ( 'include_path' ). ':/your_include_dir:' );
- ini_set('include_path',ini_get('include_path').':/your_include_dir:');
PHP配置函数ini_get()相信很多人都使过,就是获取配置文件中某一个选项的值,如果是true值就返回1,如果是false值就返回0,字符串就返回字符串。
比如手册中的例子:
- <?php
- /* Our php.ini contains the following settings: display_errors = On register_globals = Off post_max_size = 8M */
- echo 'display_errors = ' . ini_get ( 'display_errors' ) . " " ; //显示错误是否打开
- echo 'register_globals = ' . ini_get ( 'register_globals' ) . " " ; //全局变量是否打开
- echo 'post_max_size = ' . ini_get ( 'post_max_size' ) . " " ; //最多能提交的文件大小
- echo 'post_max_size+1 = ' . ( ini_get ( 'post_max_size' )+1) . " " ;
- ?>
- <?php
- /* Our php.ini contains the following settings: display_errors = On register_globals = Off post_max_size = 8M */
- echo 'display_errors = ' . ini_get('display_errors') . " "; //显示错误是否打开
- echo 'register_globals = ' . ini_get('register_globals') . " "; //全局变量是否打开
- echo 'post_max_size = ' . ini_get('post_max_size') . " "; //最多能提交的文件大小
- echo 'post_max_size+1 = ' . (ini_get('post_max_size')+1) . " ";
- ?>
输出:
display_errors = 1
register_globals = 0
post_max_size = 8M
post_max_size+1 = 9
PHP配置函数ini_get()主要是为了获取配置文件,可以方便你很多操作。 比如你想操作字符串过滤,但是又不清楚 magic_quotes_gpc有没有打开,所以你就可以这样写一个函数:
- <?php
- /* 字符串过滤函数 */
- function stringFilter( $str ) {
- if ( ini_get ( 'magic_quotes_gpc)' ) { return $str ; } else { return addslashes ( $str ); }
- }
- ?>
- <?php
- /* 字符串过滤函数 */
- function stringFilter($str) {
- if (ini_get('magic_quotes_gpc)') { return $str; } else { return addslashes($str); }
- }
- ?>
当然,如果你无法知道你的全局变量是否打开,也可以定制这样的函数:
- <?php
- /* 变量检测函数 */
- function getGetVar( $var ) {
- if ( ini_set ( 'register_gobals' )){ return $var ; } else { return $_GET[ 'var' ]; }
- }
- ?>
- <?php
- /* 变量检测函数 */
- function getGetVar($var) {
- if (ini_set('register_gobals')){ return $var; } else { return $_GET['var']; }
- }
- ?>
当然,你可以用PHP配置函数ini_get()做很多用途,自己慢慢体会。
| 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 |
常量 值 含义
| PHP_INI_USER | 1 | 该项目可以在用户脚本中设定 |
| PHP_INI_PERDIR | 2 | 该项目可以在 php.ini ,.htaccess 或者 httpd.conf 中设定 |
| PHP_INI_SYSTEM | 4 | 该项目可以在 php.ini 或 httpd.conf 中设定 |
| PHP_INI_ALL | 7 | 该项目可以在任何地方设定 |
浙公网安备 33010602011771号