从ini文件中读取分号分隔的字符串值

时间:2014-09-04 10:28:40

标签: php

我正在阅读配置文件,我想在字符串中读取包含;的名称,如

config=node1;node2;node3

我希望整体阅读而不是node1,因为php在阅读中回复

我的代码:

$ini_array = parse_ini_file("test_config.conf", true);
$nodelist = $ini_array["config"];

1 个答案:

答案 0 :(得分:1)

由于;表示ini文件中的评论,parse_ini_file()会正确地抛弃(未引用的);背后的所有内容。

对我而言,您似乎在滥用ini格式,因此如果您想获取该信息,则需要自行解析文件,如下所示:

$config = array();
foreach(file('/path/to/conf.ini') as $line) {
    if(preg_match('/^([^;]*?)=(.*)/', $line, $m)) {
        $config[$m[1]] = $m[2];
    }
}

var_dump($config);

如果您只需要config的值,则可以使用:

preg_match('/^\s*config\s*=(.*)/', file_get_contents('config.ini'), $m);
echo $config = $m[1];