我需要将一个.ini
文件解析成一个数组,然后更改数组的值并将其导出到同一个.ini
文件中.我设法读取了该文件,但没有找到任何简单的方法来回写它.有什么建议?
样本.ini
文件:
1 = 0;
2 = 1372240157; // timestamp.
Run Code Online (Sandbox Code Playgroud)
为了将.ini
文件写回来,你需要创建自己的函数,因为除了阅读之外,PHP没有提供开箱即用的功能(可以在这里找到:http://php.net/manual/pl/function. parse-ini-file.php).
可能将多维数组封装到.ini
-syntax兼容字符串的函数示例可能如下所示:
function arr2ini(array $a, array $parent = array())
{
$out = '';
foreach ($a as $k => $v)
{
if (is_array($v))
{
//subsection case
//merge all the sections into one array...
$sec = array_merge((array) $parent, (array) $k);
//add section information to the output
$out .= '[' . join('.', $sec) . ']' . PHP_EOL;
//recursively traverse deeper
$out .= arr2ini($v, $sec);
}
else
{
//plain key->value case
$out .= "$k=$v" . PHP_EOL;
}
}
return $out;
}
Run Code Online (Sandbox Code Playgroud)
你可以像这样测试它:
$x = [
'section1' => [
'key1' => 'value1',
'key2' => 'value2',
'subsection' => [
'subkey' => 'subvalue',
'further' => ['a' => 5],
'further2' => ['b' => -5]]]];
echo arr2ini($x);
Run Code Online (Sandbox Code Playgroud)
(请注意,短数组语法仅在PHP 5.4以上可用.)
另请注意,它不会保留您问题中的评论.当它是更新文件的软件(而不是人类)时,没有简单的方法来记住它们.
Pie*_*reL -2
使用 php 内部函数怎么样?http://php.net/manual/en/function.parse-ini-file.php
归档时间: |
|
查看次数: |
11902 次 |
最近记录: |