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程序設計有所幫助。