如何将多维数组保存为平面文本文件 - PHP

时间:2013-08-02 11:38:10

标签: php

我有一个多维数组,目前它只在页面上打印数组。我希望能够在用户提交时存储所选复选框信息的平面文本文件中保存它。总共有6天。

3 个答案:

答案 0 :(得分:9)

我只是这样做:

<?php
    if ($_POST)
    {//always check, to avoid noticed
        file_put_contents('theFilenameToWriteTo.json', json_encode($_POST));
    }
?>

json_encode的好处在于它或多或少是标准的。我所知道的所有语言都可以解析这种格式。如果您正在使用node.js,它可以读取数据,Java? JSON-java适合你。蟒蛇? import json,地狱,even C++ libs很容易找到 要在PHP中重用该数据:

$oldPost = json_decode(file_get_contents('theFileNameToRead.json'));
//$oldPost will be an instance of stdClass (an object)
//to get an assoc-array:
$oldPostArray = json_decode(file_get_contents('sameFile.json'), true);

还有其他选项:serialize和写,然后在阅读时跟unserialize 如果您希望该数组可以复制到现有的PHP代码中,use var_export

file_put_contents('theArray.txt', var_export($_POST, true));

如果你打开文件,那么它将包含一个数组,就像它是手写的一样:

array (
  0 => 1,
  1 => 2,
  2 => 
  array (
    0 => 'a',
    1 => 'b',
    2 => 'c',
  ),
)

正如CarlosCampderrós所指出的,你甚至可以包括由var_export生成的字符串。重要的是要注意var_export不处理循环引用,但是当你使用$_POST数组时,看到这不是问题。 回顾一下有用功能列表:

答案 1 :(得分:1)

您可以使用

print_r($multiArray,true)

真正意味着我们想要捕获输出而不是打印。

数组(PHP 5.4)

$multiArray = [
        0 => [ 'a' => 'b'],
        1 => [ 'c' => 'd', 
               'e' => [
                   'f' => 'g',
                   'h' => 'i'
               ]
        ],
];

PHP

$file = 'array.txt';

$fh = fopen($file, 'w') or die("can't open file");  

fwrite($fh, print_r($multiArray,true));

fclose($fh);

如果你想稍后使用数组,你可以使用serialize()和unserialize()

fwrite($fh, serialize($multiArray) );

答案 2 :(得分:0)

使用json_encode(),将数组转换为字符串并存储它。您还可以使用json_decode()将字符串转换回数组。