用php

时间:2018-02-10 04:49:09

标签: php arrays json

免责声明:我对PHP非常不熟悉。我看到在Stack附近浮动的答案似乎不适用于我的情况。这可能是由于我不熟悉。

我需要写入JSON文件中的现有数组:

[
    [
        // data should be written to this array
    ],
    []
] 

我的PHP看起来像这样:

<?php
    $ip = $_POST["ip"];
    $likes = "../data/likes.json";
    $fp = fopen($likes, "a");
    fwrite($fp, json_encode($ip) . ", ");
    fclose($fp);
?>

当PHP运行时,它会像这样写入文件的末尾(正如您所期望的那样):

[
    [

    ],
    []

]"data",

如何解析我的PHP?

2 个答案:

答案 0 :(得分:1)

打开文件:

$filename = '../data/likes.json'
$fp = fopen($filename, 'r');

然后将现有数据结构读入变量:

$data = json_decode(fread($fp, filesize($filename)));

将数据添加到正确的数组条目中:

$data[0][] = $ip;

使用写权限关闭并重新打开文件,以便覆盖其内容:

fclose($fp);
$fp = fopen($filename, 'w');

并编写新的JSON:

fwrite($fp, json_encode($data));

答案 1 :(得分:0)

$ip = $_POST["ip"];
$likes = json_decode(file_get_contents("../data/likes.json"), true);
$likes[] = $ip;
file_put_contents("../data/likes.json", json_encode($likes));

你不能完全添加记录到文件并获得有效的json jbject。 那么代码的想法: 我们从文件中读取所有内容,使用新数据附加数组,并使用新数据重写文件