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'); // 返回 localhostprint 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 = Onregister_globals = Offpost_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 = 1register_globals = 0//在我机器上什么也没有post_max_size = 8Mpost_max_size+1 = 9allow_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 = Onregister_globals = Offpost_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 = 1register_globals =post_max_size = 8Mpost_max_size+1 = 9allow_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者的差别还是很大的! 先看下面 ...
随机推荐
- 矩阵乘法C语言实现
/* 矩阵乘法C语言实现 Slyar 2009.3.20 */ #include <stdio.h> #include <stdlib.h> /* 给 int 类型定义 ...
- 413. Reverse Integer【easy】
Reverse digits of an integer. Returns 0 when the reversed integer overflows (signed 32-bit integer). ...
- Makefile 之 $(Q)
# To put more focus on warnings, be less verbose as default # Use 'make V=1' to see the full command ...
- IntelliJ IDEA代码编码区提示库源不匹配字节码解决办法
在使用IntelliJ IDEA进行开发时,可能会在代码编辑区出现此提示:library source does not match the bytecode for class HelloWorld ...
- html 基本标签 ---特殊格式
<address> </address> 地址 <blockquote> </blockquote> 缩进 <q> </q> 小 ...
- (译)Getting Started——1.3.2 Using Design Patterns(使用设计模式)
设计模式解决了一个常见的软件工程学问题.模式不是编码,它是抽象的设计.它用于帮助开发者定义数据模型的结构和应用的交互.如果你采用了某种设计模式,你需要把它的一般形式适配到你特殊的需求上.不论你的应用是 ...
- shell编程sed笔记
源文件的内容 <modules> <module name="provider"> <!--发布模式--> <bds_mode/> ...
- 用Vue.js开发一个电影App的前端界面
我们要构建一个什么样的App? 我们大多数人使用在线流媒体服务(如Netflix)观看我们最喜欢的电影或者节目.这篇文章将重点介绍如何通过使用vue.js 2 建立一个类似风格的电影流媒体WEB交互界 ...
- 11个免费的Web安全测试工具
1.Netsparker Community Edition(Windows) 这个程序可以检测SQL注入和跨页脚本事件.当检测完成之后它会给你提供一些解决方案. 2.Websecurify(Wind ...
- 请写出5种常见到的runtime exception。
请写出5种常见到的runtime exception. 解答: NullPointerException:当操作一个空引用时会出现此错误. NumberFormatException:数据格式转换出现 ...