有没有什么特殊的函数可以像parse_ini_file()函数一样解析 php 中的 .conf 文件?如果不是,我怎么能做到这一点?谢谢!
编辑 :
Conf 就像 httpd.conf(Apache)。(我想阅读和编辑 httpd.conf 文件)
不,没有解析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");)。