展开目录
php解析ini文件
phpini
X
陈尼玛的博客
记录开发生涯的踩坑经历,用时间来验证成长
加载中

php自带的parse_ini_file提供的功能不方便处理多级命名空间的写法,因此我自己实现了类似 Yaf_Config 的功能。

a.ini

widget.paths[] = APP_PATH "/application/widget/"

upload.dir = APP_PATH "/public/uploads/"
upload.pub_dir = "/newpages/public/uploads/"

parse.php

define('APP_PATH',dirname(__FILE__).'/');
function my_parse_ini($filename,$dir=null){
  $a=parse_ini_file(($dir===null?APP_PATH.'/conf/':$dir).$filename,true);
  $o=(object)array();
  foreach($a as $key=>$value){
    $w=explode('.',$key);
    for($i=0,$n=count($w);$i<$n;$i++){
      $t='$o->'.join('->',array_slice($w,0,$i+1));
      eval('if(!@'.$t.')'.$t.'=$i<$n-1?(object)array():json_decode(\''.json_encode($value).'\',true);');
    }
  }
  return $o;
}

// 解析a.ini
var_dump(my_parse_ini('a.ini');

输出结果为

object(stdClass)#12 (2) {
  ["widget"]=>
  object(stdClass)#13 (1) {
    ["paths"]=>
    array(1) {
      [0]=>
      string(48) "/alidata/www/shop2/newpages//application/widget/"
    }
  }
  ["upload"]=>
  object(stdClass)#14 (2) {
    ["dir"]=>
    string(44) "/alidata/www/shop2/newpages//public/uploads/"
    ["pub_dir"]=>
    string(25) "/newpages/public/uploads/"
  }
}

兼容php5.2和更新的版本

相关文档

暂无

随便看看

  1. windows电脑防止自动休眠

  2. cnpm 立即同步

  3. 安卓文字偏上,文字顶部被遮罩

  4. npm远程服务器某些配置不兼容代理的解决办法

  5. curl用法

  6. npm包命令行调用

  7. git删除远程分支

  8. 搜索命令整理

  9. heroku查看app使用时间

  10. webrtc服务搭建

  11. webrtc泄漏本地ip信息

  12. 单页应用的单向数据流的流程图

  13. linux自启动/禁止自启动服务

  14. git 设置代理服务器

  15. ssl 证书生成方式

  16. 把树莓派的存储空间拓展到整张TF卡中

  17. 数据库清理优化

  18. 前端性能观察器

畅言模块加载中