php中get_cfg_var()和ini_get()的用法及区别

php里get_cfg_var()和ini_get()都是取得配置值的函数,当你须要获取php.ini里的某个选项的配置值时,这两个函数都均可以使用,获得的结果是同样的。php

不过,get_cfg_var()和ini_get()也有一些区别,这即是本文要谈的内容。数组

在说这两个函数区别以前,咱们先来了解一下它们的含义及用法。函数

有关ini_get()的用法,前面有一篇《php用ini_get获取php.ini里变量值的方法》,这里再也不累赘。post

下面主要说说get_cfg_var()函数。url

get_cfg_var: 取得PHP的配置选项值。spa

语法: string get_cfg_var(string varname);.net

返回值: 字符串设计

内容说明: 若正确取得目前 PHP 配置选项 varname,则返回变量值。失败则返回 false。code

下面说说这两个函数的区别htm

其实,这两个函数的区别是很鲜明,而且易懂易学易用。

get_cfg_var(): 取的值是配置文件中的值
ini_get():  则取的当前值

好比

?
1
2
3
ini_set ( 'SMTP' , '192.160.0.24' ); // 改变 SMTP 的当前值
print get_cfg_var( 'SMTP' ); // 返回 localhost
print ini_get ( 'SMTP' ); // 返回 192.160.0.24

代码

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?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' ) . "\n" ;
echo 'register_globals = ' . ini_get ( 'register_globals' ) . "\n" ;
echo 'post_max_size = ' . ini_get ( 'post_max_size' ) . "\n" ;
//POST提交内容限制:
echo 'post_max_size+1 = ' . ( ini_get ( 'post_max_size' )+1) . "\n" ;
echo 'allow_url_fopen = ' . ( ini_get ( 'allow_url_fopen' )) . "\n" ;
//使用URL打开文件:
?>

输出:

?
1
2
3
4
5
display_errors = 1
register_globals = 0 //在我机器上什么也没有
post_max_size = 8M
post_max_size+1 = 9
allow_url_fopen = 1

代码

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
/*
Our php.ini contains the following settings:
display_errors = On
register_globals = Off
post_max_size = 8M
*/
echo 'display_errors = ' . get_cfg_var( 'display_errors' ) . "\n" ;
echo 'register_globals = ' . get_cfg_var( 'register_globals' ) . "\n" ;
echo 'post_max_size = ' . get_cfg_var( 'post_max_size' ) . "\n" ;
//POST提交内容限制:
echo 'post_max_size+1 = ' . (get_cfg_var( 'post_max_size' )+1) . "\n" ;
echo 'allow_url_fopen = ' . (get_cfg_var( 'allow_url_fopen' )) . "\n" ;
//使用URL打开文件:
?>

输出

?
1
2
3
4
5
display_errors = 1
register_globals =
post_max_size = 8M
post_max_size+1 = 9
allow_url_fopen = 1

另外,这里提一提ini_get_all()函数,这个函数与ini_get()不一样,ini_get_all()函数是以数组的形式返回整个php的环境变量,不过它的用法也很简单。

ini_get_all()会把全部选项值以数组的形式返回,方便你当phpinfo()没法使用的时候来使用。

例子:

?
1
2
3
4
<?php
$inis = ini_get_all ();
print_r( $inis );
?>

输出:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Array (
[allow_call_time_pass_reference] => Array
(
[global_value] => 1
[local_value] => 1
[access] => 6
)
[allow_url_fopen] => Array
(
[global_value] => 1
[local_value] => 1
[access] => 7
)
)

但愿本文所述对你们的php程序设计有所帮助。

相关文章
相关标签/搜索