将配置文件读入 PHP 中


Read in a configuration file into PHP

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

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

等。。。

这个文件被写成一个 cfg 文件供 perl 脚本使用,但我需要将该文件读回 PHP,以便每次都可以对其进行编辑,以便 perl 脚本再次使用。

如何做到这一点?

我以前让它写入.csv文件并被读回,但后来被告知这不是需要的,它必须在 cfg 文件中,所以将信息添加回 PHP 脚本会像读取.csv文件一样容易。

我认为需要的是不要读入 text1 和 text2 变量,而是要读回等于之后的内容,以便将 hello 和再见字符串读回 PHP。

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

text1=hello,howareyou
然后,需要在

PHP脚本中成为一个单独的实体,所以我猜我会使用爆炸函数来获取单独的数据片段。

这些数据将被读入一个表中,然后用户可以在其中编辑当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,以便用户可以再次编辑信息。

格式在哪里指定?也许您可以使用 .ini 文件格式,它类似于您的示例。您可以使用parse_ini_file()将.ini文件作为数组读取。您还可以对多个条目进行分组。请参阅链接的 PHP 文档页面上的示例。

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

$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 />';
    }
}