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之后可用.) 另请注意,它不会保留您问题中的评论.当它是更新文件的软件(而不是人类)时,没有简单的方法来记住它们. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |