首页->正文

用php解析配置文件

2011-05-07 -Web开发 标签: php

首先parse_ini_file()函数,可以解析类似php.ini格式的配置文件。但以下格式配置文件就不支持了,且某行格式错误时也不能提供警告信息:
#parse_config.txt
[section_name]
host_name =test.com
path= /data/www/
#comment
error line!!!


因此写了段简单过滤读取配置文件的代码,看具体实现过程
<?php
$dirname = dirname(__FILE__);
$config_file = $dirname.'/parse_config.txt';

//一次读取全部内容并按行分割
$config_rows = file($config_file);
$config_data = array();
$section_name = '';

$line = 0;
foreach($config_rows as $row){
     $row = trim($row);
     $line++;

     //过滤注释信息
     if(!$row || preg_match('/^\s*#/', $row)){
          continue;
     }

     //获取section名称
     if(preg_match('/^\s*\[(.*)\]/', $row, $m)){
          $section_name = $m[1];
          continue;
     }

     #读取key&value
     if(preg_match('/^\s*([^=\s]*)\s*=\s*(.*)/', $row, $m)){
          $config_data[$section_name][$m[1]] = $m[2];
     }
     #提示错误的行
     else{
          echo "Config error on line {$line}:\n {$row}\n";
          break;
     }
}
print_r($config_data);

//EOF


扩展思考
如何改善较大配置文件的读取速度
如何把解析好的配置信息进行缓存,以减少解析开销,另外配置文件更新后如何处理?

下一篇 mysql、nginx权限设置不当导致的两则问题

上一篇 Varnish安装配置和使用

相关文章

Ubuntu下编译安装PHP

使用curl_multi_init并发请求

php增加Last-Modified为何无效

用xhprof分析php代码

正则修饰符m和s用法

文章分类

开发小提示

  • 1:Mongodb中通过db.yourCollectionName. dataSize()查看某个文档的大小
  • 2:linux下用reset命令恢复查看二进制文件导致的命令行乱码
  • 3:查看MySQL表的索引情况show index from tableName
  • 更多...

交流

  • wangnow(a)126.com