如何使用parse_ini_file()解析MySQL配置文件my.cnf


How to parse MySQL config file my.cnf using parse_ini_file()

使用 parse_ini_file('/etc/mysql/my.cnf') 时,返回以下错误消息:

Warning: syntax error, unexpected '!' in /etc/mysql/my.cnf on line 141

发生这种情况是因为配置文件的最后一行,即:

!includedir /etc/mysql/conf.d/

是否可以使用 parse_ini_file() 来解析 MySQL 配置文件并绕过与感叹号相关的错误,或者我应该查看 preg_match() ?谢谢。

不幸的是,parse_ini_file不会这样做。
您应该转义无效字符,例如

^!{}~

在parse_ini_string解析之前您可以在以下链接上查阅手册:http://php.net/manual/en/function.parse-ini-string.php
以下代码将完成这个技巧

$myfile = file_get_contents("my.cnf");
$invalid = array("!","{","}","~","^");
$myfile = str_replace($invalid, "", $myfile);
$cfg = parse_ini_string($myfile,TRUE);
var_dump($cfg);