0

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

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

ETC...

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

如何才能做到这一点?

我之前将它写入 .csv 文件并重新读入,但后来被告知这不是所需的,它必须在 cfg 文件中,所以将信息重新添加到读取 .csv 文件时的 PHP 脚本。

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

另一件事是,当用户添加更多信息以说 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,以便用户可以再次编辑信息。

4

2 回答 2

2

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

于 2012-07-06T11:39:56.453 回答
1

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

$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 />';
    }
}
于 2012-07-06T11:41:16.390 回答