php - httpd.conf - 在php中,如何解析.conf文件

有没有特殊的函数可以在php中解析.conf文件,比如parse_ini_file()函数?

Conf类似于httpd.conf(Apache)。(我想读取和编辑httpd.conf文件)

时间:

没有特殊的函数来解析httpd.conf,但是解析器很容易编写,例如如果你只对key-value设置感兴趣,比如ServerRoot /var/www,那么这个技巧就是:


<?php



define('HTTPD_CONF', '/tmp/httpd.conf');



$lines = file(HTTPD_CONF);


$config = array();



foreach ($lines as $l) {


 preg_match("/^(?P<key>w+)s+(?P<value>.*)/", $l, $matches);


 if (isset($matches['key'])) {


 $config[$matches['key']] = $matches['value'];


 }


}



var_dump($config);



https://github.com/pear/Config

例如:


$conf = new Config();


$root = $conf->parseConfig("/etc/apache2/httpd.conf","apache");


print current($root->getItem('directive', 'Listen'))->content;



...