将配置文件读入PHP

时间:2012-07-06 11:32:55

标签: php

我有一个PHP文件,它将一些信息写入配置文件,看起来有点像......

#Date=01/2012
text1=hello
text2=goodbye

等...

这个文件是作为cfg文件编写的,供perl脚本使用,但我需要将该文件读回PHP,以便每次都可以编辑它以便perl脚本再次使用。

如何做到这一点?

我之前已将其写入.csv文件并重新读回来,但后来被告知这不是所需要的,而且必须在cfg文件中,因此添加信息也同样容易在读取.csv文件时,回到PHP脚本。

我认为我们需要的是不要读入text1和text2变量,而是要读回equals之后的内容,以便将hello和goodbye字符串读回PHP。 / p>

另一件事是,当用户添加更多信息来表示text1时,它将具有多个值,例如他们可以将text1更改为...

text1=hello,howareyou

那么,需要在PHP脚本中成为一个单独的实体,所以我猜我会使用explode函数来获取单独的数据。

这些数据将被读入一个表格,然后用户可以编辑为perl脚本再次运行时准备好的信息。

在阅读信息时,我的HTML会是这样的。

<table>
    <tr>
        <td>text 1</td>
        <td>hello</td>
        <td>howareyou</td>
    </tr>
    <tr>
        <td>text 2</td>
        <td>goodbye</td>
    </tr>
</table>

我希望我已经明白这一点,我真的很难理解如何做到这一点。因为它看起来不像从.csv那样容易。

此外,我不希望PHP执行脚本,我只需要将其读入PHP,以便用户可以再次编辑信息。

2 个答案:

答案 0 :(得分:2)

指定的格式在哪里?也许你可以使用.ini文件格式,这与你的例子类似。您可以use parse_ini_file() to read in the .ini-file作为数组。 您还可以对多个条目进行分组。请参阅链接的PHP文档页面上的示例。

答案 1 :(得分:1)

试试这个。最终得到一个整洁的关联数组 - param名称作为元素名称,param值作为元素值。

$cfg_path = 'path/to/config.cfg';
if (file_exist($cfg_path)) {
    if (preg_match_all('/^(?!#)(.+)=(.*)$/m', file_get_contents($cfg_path), $cfg)) {
        $cfg = array_combine($cfg[1], $cfg[2]);
        foreach($cfg as $name => $val)
            echo $name.' = '.$val.'<br />';
    }
}