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

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

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

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

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

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

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

语法: string get_cfg_var(string varname);

返回值: 字符串

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

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

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

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程序设计有所帮助。

时间: 2024-11-06 07:25:35

php中get_cfg_var()和ini_get()的用法及区别的相关文章

【Java学习笔记之二十九】Java中的&quot;equals&quot;和&quot;==&quot;的用法及区别

Java中的"equals"和"=="的用法及区别 在初学Java时,可能会经常碰到下面的代码: 1 String str1 = new String("hello"); 2 String str2 = new String("hello"); 3 System.out.println(str1==str2); 4 System.out.println(str1.equals(str2)); 为什么第4行和第5行的输出结果不一

php 中 get_cfg_var() 与 ini_get() 的异同

背景 get_cfg_var() 取的值是配置文件中的值 ini_get() Gets the value of a configuration option, 则取的当前值(运行时,PHP系统定义) 示例 <?phpprint get_cfg_var('memory_limit');  // 返回 1024Mprint("\n");print ini_get('memory_limit');      // 返回 1024Mprint("\n");ini_s

php中session_unset与session_destroy的用法与区别,做退出的执行顺序

区别: session_unset()释放当前在内存中已经创建的所有$_SESSION变量,但不删除session文件以及不释放对应的session id session_destroy()删除当前用户对应的session文件以及释放session id,内存中的$_SESSION变量内容依然保留 因此,释放用户的session所有资源,需要顺序执行如下代码: <?php$_SESSION['user'] = 'user1′;session_unset();session_destroy();?

jQuery中delegate与on的用法与区别

在jQuery1.7中 .delegate()已被.on()取代.对于早期版本,它仍然使用事件委托的最有效手段. 在事件绑定和委派,delegate()和on在一般情况下,这两种方法是等效的. .delegate() 指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数. // jQuery 1.4.3+ $( elements ).delegate( selector, events, data, handler ); // jQuery 1.7+ $

C++ 中 auto 与 decltype 的用法与区别

最近在恶补 C++ 知识的时候,学习到了一些 C++11 标准的新特性,利用这些新特性,我们能够更快地提高编程效率,从而实现我们的目标,在此特意记下学习过程中所学习到的一些东西,方便日后的回顾和复习. auto 关键字 在我们日常编程的时候,我们常常需要把表达式的值赋给变量,需要在声明变量的时候,我们必须清楚的知道变量是属于什么类型的.然而往往有些时候,我们做到这一点并非易事.为了解决这个问题, C++11 新标准就引入了 auto 类型说明符,通过使用 auto 关键字,我们就能让编译器替我们

Vue中Computed和Watch的用法及区别

一. 计算属性(computed) 1.计算属性是为了模板中的表达式简洁,易维护,符合用于简单运算的设计初衷. 例如: <p id="app"> {{ myname.substring(0,1).toUpperCase() + myname.substring(1) }} </p> 运算过于复杂,冗长,且不好维护,因此我们对于复杂的运算应该 使用计算属性的方式去书写. 因此可改写为: <body> <div id="app"

matlab 中randn randi rand 的用法以及区别

1,rand 生成均匀分布的伪随机数.分布在(0~1)之间 主要语法:rand(m,n)生成m行n列的均匀分布的伪随机数                      rand(m,n,'double')生成指定精度的均匀分布的伪随机数,参数还可以 是'single'                     rand(RandStream,m,n)利用指定的RandStream(我理解为随机种子)生成伪 随机数 2,randn 生成标准正态分布的伪随机数(均值为0,方差为1)     主要语法:和上

python中yield与return的用法与区别

生成器:函数内带有yield关键字,那么,这个函数执行的结果就是生成器. 生成器,本质就是迭代器. return与,yield 1,return只能返回一次函数就彻底结束了.而yield能返回多次值. 2,yield把函数变成生成器---迭代器--->把iter,next方法给到函数了.为我们自己定义迭代器,提供了方便. 3,yield能保存函数在暂停,和继续下一次云形时的状态. 原文地址:https://www.cnblogs.com/catherine007/p/8309474.html

关于Java中this和super的用法介绍和区别

1.this&super 什么是this,this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针.当你想要引用当前对象的某种东西,比如当前对象的某个方法,或当前对象的某个成员,你便可以利用this来实现这个目的.要注意的是this只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出现this.his也可作为构造函数来使用.在后面可以看到 而什么是super,可以理解为是指向自己超(父)类对象的一个指针,而这个超类指的是离自己最近的一个父类.super的作用同样是可