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程序设计有所帮助。
php中get_cfg_var()和ini_get()的用法及区别的更多相关文章
- 【Java学习笔记之二十九】Java中的"equals"和"=="的用法及区别
Java中的"equals"和"=="的用法及区别 在初学Java时,可能会经常碰到下面的代码: String str1 = new String(" ...
- 分组函数group by和Oracle中分析函数partition by的用法以及区别
1.分组函数group by和Oracle中分析函数partition by的用法以及区别 2.开窗函数.
- php 中 get_cfg_var() 与 ini_get() 的异同
背景 get_cfg_var() 取的值是配置文件中的值 ini_get() Gets the value of a configuration option, 则取的当前值(运行时,PHP系统定义) ...
- Nginx中root与alias的用法及区别:
Nginx中root与alias都是定义location {}块中虚拟目录访问的文件位置: 先看看两者在用法上的区别: location /img/ { alias /var/www/image/; ...
- 【转】STL中mem_fun和mem_fun_ref的用法及区别
原文:http://www.cppblog.com/mysileng/archive/2012/12/25/196615.html 引子: 怎么对容器中的所有对象都进行同一个操作?我们可能首先想到的是 ...
- js中innerHTML与innerText的用法与区别
用法: <div id="test"> <span style="color:red">test1</span> te ...
- C中的malloc/free与C++中的new/delete的用法与区别
1.先介绍malloc/free的用法: 原型函数: void *malloc(long NumBytes); 该函数分配了NumBytes个字节的内容,分配的空间是堆空间 malloc()根据用户所 ...
- php中global与$GLOBALS的用法及区别-转载
php中global 与 $GLOBALS[""] 差别 原本觉得global和$GLOBALS除了写法不一样觉得,其他都一样,可是在实际利用中发现2者的差别还是很大的! 先看下面 ...
- php中global与$GLOBALS的用法及区别
php中global 与 $GLOBALS[""] 差别 原本觉得global和$GLOBALS除了写法不一样觉得,其他都一样,可是在实际利用中发现2者的差别还是很大的! 先看下面 ...
随机推荐
- 智能指针tr1::shared_ptr、boost::shared_ptr使用
对于tr1::shared_ptr在安装vs同一时候会自带安装,可是版本号较低的不存在.而boost作为tr1的实现品,包括 "Algorithms Broken Compiler Work ...
- Web前端的状态管理(State Management)
背景 我相信很多朋友跟我一样,初次听到什么Flux, Redux, Vuex,状态管理的时候是一脸懵逼的.因为在外面之前前端大部分开发的时候,根本没有那么多的概念.自从ReactJS火爆后,什么Flu ...
- Hadoop 2.0 编译问题小结
原文见 http://xiguada.org/hadoop-2-x-compile/ 这些问题是2013年初整理的,不过到目前为止,即使最新的hadoop2.0系列,编译总体上变化不大,因此还能适用. ...
- QT界面 使用QStyledItemDelegate QPainter QStyleOptionViewItem QModelIndex组合实现项的绘制
QStyledItemDelegate类为来自模型的数据项提供了显示和编辑工具. 当在Qt项视图(例如QTableView)中显示来自模型的数据时,各个项由委托(delegate)绘制.此外,当编辑一 ...
- 解决eclipse偶尔无视breakpoint的行为
一般是如果你使用了T[]这样的参数列表,也就是generic array作为参数,你就算给函数打了断点,有时也会被eclipse无视 比如如下代码,你在调试main的时候,eclipse就会把doPa ...
- 自己动手搞定支付宝手机Wap网站支付接口 FOR ECShop
支付宝WAP网站版本的支付接口网上整合的比较少,看到很多网站在卖,顿觉无语. 主要是得自己查看支付宝官方提供的SDK中的开发文档. 支付宝sdk下载地址:https://doc.open.alipay ...
- 详解C#中通过委托来实现回调函数功能的方法
委托:类型安全的指向函数的指针 使用步骤 1:声明一个委托 delegate string DelString(string s) 2:定义一个委托变量 DelString del = new Del ...
- php 判断白天黑夜
<?php $h=date('H'); if($h>=8 && $h<=20) echo '白天'; else echo '夜晚'; ?>
- 与HttpSessionListener接口有关的方法是。
与HttpSessionListener接口有关的方法是. A.sessionInitialized() B.sessionCreated() C.sessionFinialized() D.sess ...
- Java并发框架——AQS之怎样使用AQS构建同步器
AQS的设计思想是通过继承的方式提供一个模板让大家能够非常easy依据不同场景实现一个富有个性化的同步器.同步器的核心是要管理一个共享状态,通过对状态的控制即能够实现不同的锁机制. AQS的设计必须考 ...