php ini_get函数使用方法详解

ini_get函数是获取php中环境变量的值了,当然ini_get能获取到的是要我们php中允许它获取它才可以获取,否则是无法获取到的,ini_get只是获取环境变量值它并不能修改环境变量值.

例如:php.ini文件中包含了以下的设置,代码如下:

register_globals = Off

post_max_size = 8M

PHP部分我们可以这样获取,代码如下:

  1. <?php
  2. echo 'display_errors = ' . ini_get('display_errors') . "\n";
  3. echo 'register_globals = ' . ini_get('register_globals') . "\n";
  4. echo 'post_max_size = ' . ini_get('post_max_size') . "\n";
  5. echo 'post_max_size+1 = ' . (ini_get('post_max_size')+1) . "\n";
  6. echo 'post_max_size in bytes = ' . return_bytes(ini_get('post_max_size'));
  7. ?>

如果想获取整个php.ini里的变量值,我们可以用ini_get的加强函数 ini_get_all(),ini_get_all()函数以数组的形式返回整个php的环境变量,当然如果你只是想了解下php的配置信息用 phpinfo();

接着向下看,php手册中有一个例子,代码如下:

  1. <?php
  2. /*
  3. Our php.ini contains the
  4. following settings:
  5. display_errors = On
  6. register_globals = Off
  7. post_max_size = 8M
  8. */
  9. echo ‘display_errors = ‘ .
  10. ini_get(’display_errors’) . “\n”;
  11. //显示错误是否打开
  12. echo ‘register_globals = ‘ .
  13. ini_get(’register_globals’) . “\n”;
  14. //全局变量是否打开
  15. echo ‘post_max_size = ‘ . ini_get(’
  16. post_max_size’) . “\n”;
  17. //最多能提交的文件大小
  18. echo ‘post_max_size+1 = ‘ .
  19. (ini_get(’post_max_size’)+1) . “\n”;
  20. ?>//开源代码phpfensi.com
  21. //输出:
  22. display_errors = 1
  23. register_globals = 0
  24. post_max_size = 8M
  25. post_max_size+1 = 9

PHP配置函数ini_get()主要是为了获取配置文件,可以方便你很多操作,比如你想操作字符串过滤,但是又不清楚magic_quotes_gpc有没有打开,所以你就可以这样写一个函数,代码如下:

  1. /* 字符串过滤函数 */
  2. function stringFilter($str)
  3. {
  4. if (ini_get(’magic_quotes_gpc)’)
  5. {
  6. return $str;
  7. }
  8. else {
  9. return addslashes($str);
  10. }
  11. }

当然,如果你无法知道你的全局变量是否打开,也可以定制这样的函数,变量检测函数,代码如下:

  1. function getGetVar($var)
  2. {
  3. if (ini_set(’register_gobals’))
  4. {
  5. return $var;
  6. }
  7. else {
  8. return $_GET['var'];
  9. }
  10. }

当然,你可以用PHP配置函数ini_get()做很多用途,自己慢慢体会.

补充:ini_get()获取配置参数,ini_set()设置配置参数,代码如下:

  1. echo ini_get('display_errors'); //1
  2. //动态修改php.ini配置信息,脚本执行后失效
  3. ini_set('display_errors',0);
  4. echo ini_get('display_errors');//0

ini_get_all()获取所有配置信息,代码如下:

  1. //打印所有配置信息,巨多。。。
  2. print_r(ini_get_all());

ini_restore()恢复配置信息到原始值,代码如下:

  1. echo ini_get('display_errors'); //1
  2. //动态修改php.ini配置信息,脚本执行后失效
  3. ini_set('display_errors',0);
  4. ini_restore('display_errors');
  5. echo ini_get('display_errors');//1