我有一个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 />';
}
}