如何在 php 中解析 .conf 文件

Jay*_*lya 5 php httpd.conf

有没有什么特殊的函数可以像parse_ini_file()函数一样解析 php 中的 .conf 文件?如果不是,我怎么能做到这一点?谢谢!

编辑 :

Conf 就像 httpd.conf(Apache)。(我想阅读和编辑 httpd.conf 文件)

jmd*_*din 5

不,没有解析httpd.conf 的特殊函数,但是解析器应该很容易编写。例如,如果您只对键值设置感兴趣,例如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);
Run Code Online (Sandbox Code Playgroud)

如果您想解析<Directory ...>和其他块,它会多花几行代码,但不应该太费力。这真的取决于你想做什么。您可以从$_SERVERand获取大量信息getenv(),因此您可能不需要解析配置文件。

编辑

为了响应您的更新,为了编辑 httpd.conf,您需要以超级用户权限运行脚本并重新加载 httpd.conf(例如,system("apachectl graceful");)。