php – 将数组转换为.ini文件

前端之家收集整理的这篇文章主要介绍了php – 将数组转换为.ini文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要将.ini文件解析为数组,然后更改数组的值并将其导出到相同的.ini文件中.
我设法读取了该文件,但没有找到任何简单的方法来回写它.
有什么建议?

示例.ini文件

1 = 0;
2 = 1372240157;    // timestamp.
为了编写.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;
}

你可以像这样测试它:

$x = [
  'section1' => [
    'key1' => 'value1','key2' => 'value2','subsection' => [
      'subkey' => 'subvalue','further' => ['a' => 5],'further2' => ['b' => -5]]]];
echo arr2ini($x);

(请注意,短数组语法仅在PHP 5.4之后可用.)

另请注意,它不会保留您问题中的评论.当它是更新文件的软件(而不是人类)时,没有简单的方法来记住它们.

猜你在找的PHP相关文章