与php.ini有关的几个PHP函数

本文介绍了PHP中用于操作php.ini配置文件的四个主要函数:ini_get、ini_set、ini_get_all及ini_restore。重点讲解了ini_get和ini_set函数的用法,并通过示例展示了如何在程序中读取和设置配置项。

PHP中提供四个函数实现对php.ini的操作:ini_get、ini_set、ini_get_all、ini_restore
其中最常用的是ini_set和ini_get。
下面具体来说说这两个函数的作用: 
ini_get()

获取配置文件的选项值,即获取配置文件中某一个选项的值,如果是true值就返回1,如果是false值就返回0,字符串就返回字符串。
例如:
<?php

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";//最多能提交的文件大小
echo 'post_max_size+1 = ' . (ini_get('post_max_size')+1) . "n"; 
?> 
输出:
display_errors = 1
register_globals = 0
post_max_size = 8M
post_max_size+1 = 9
php.ini设置中提供magic_quotes_gpc=On选项来自动对post和get到的变量值进行特殊符号转义
php中同时提供了addslashes()函数来完成相同的功能,那么,我们在写过滤函数的过程中,为了兼容以前的版本(我没查过到底从哪个php版本中开始支持magic_quotes_gpc这个选项)或者是判断这个设置是否开启,以决定是否要在程序中对get和post变量进行转义,所以你就可以这样写一个函数:

function stringFilter($str)
{
if (ini_get('magic_quotes_gpc)') {
  return $str;
} else {
  return addslashes($str);
}

还有一种比较常用的情况就是,如果你不知道php.ini中的全局变量是否打开,可以写一个这样的函数:

function getGetVar($var)
{
if (ini_set('register_gobals')) {
  return $var;
} else {
  return $_GET['var'];


以上只是举了两个比较常见的例子去说明ini_get()函数的用处,还有其他地方可以用到
ini_set()
设置php.ini中的某些变量值,即设置php.ini中某个选项中的值(这里需要注意的是,在执行函数后生效,脚本结束的时候,这个设置也失效,且不是所有的选项都能被改函数设置,具体参考手册)
例如在php.ini中的选项display_error选项关闭了,但是你要显示程序中的错误信息,方便你调试程序,那么就可以使用这个函数:
ini_set("display_errors", "On");
当然还有其他的设置,看你使用的要求具体控制这些选项;
有一个比较灵活的用法,是网上看到的,比如你想在配置文件里添加自己的包含文件路径,但是你有没有权限更改php.ini,那么你可以结合两个函数:
ini_set('include_path',ini_get('include_path').':/your_include_dir:'); 
另外两个不常用的函数
ini_get_all()
获取所有的设置选项变量,即把所有选项值以数组的形式返回,方便你当phpinfo()无法使用的时候来使用。
手册例子,比如:
<?php
$inis = ini_get_all();
print_r($inis);
?> 
部分输出:
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
    )
    ...
)
ini_restore()
回复配置文件默认的值,当使用了ini_set设置后可以使用它来恢复set前的值。
---------------------------
附:一个介绍php的比较详细的网站W3school
http://www.w3school.com.cn/php/index.asp

另外:php5提供了一组对变量进行过滤的函数

    * filter_var() - 通过一个指定的过滤器来过滤单一的变量
    * filter_var_array() - 通过相同的或不同的过滤器来过滤多个变量
    * filter_input - 获取一个输入变量,并对它进行过滤
    * filter_input_array - 获取多个输入变量,并通过相同的或不同的过滤器对它们进行过滤

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值