加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 13:25:28 所属栏目:PHP教程 来源:网络整理
导读:我需要将.ini文件解析为数组,然后更改数组的值并将其导出到相同的.ini文件中. 我设法读取了该文件,但没有找到任何简单的方法来回写它. 有什么建议? 示例.ini文件: 1 = 0;2 = 1372240157; // timestamp. 为了编写.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之后可用.)

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读