我正在处理一个项目,该项目需要在每次表单提交后将JSON添加到文件中。 我的目标是让JSON看起来像:
{
"word0":[
"cheese",
"burger"
],
"word1":[
"sup",
"boi"
],
"word2":[
"nothin'",
"much"
]
}
但我之后无法添加到JSON文件中。
编辑:我正考虑为每个表单提交创建一个新文件。这会是一个更好的选择吗? (存储大小不是问题)
这是我将JSON放入文件的当前代码:
$response['word' . $count] = array('word1' => $_POST['firstrow'], 'word2' => $_POST['secondrow']);
file_put_contents("query.json", file_get_contents("query.json") . json_encode($response) . "\n");
答案 0 :(得分:1)
如果你对存储大小没有任何问题,你可以为每个表单提交做一个新文件。
但是你可以通过阅读文件来制作一个大文件。
$data = json_decode(file_get_contents("data.json"), true);
$data["word3"] = array("i don't" , "know");
file_put_contents("data.json", json_encode($data));
如果您想保存IO,可以通过fseek
在特定位置书写。
$file = fopen("data.json", "c");
fseek($file, -5, SEEK_END); // 5 character back from the end of the file.
fwrite($file, $newJsonArrayElement);
fclose($file);
^^^^^^^^^^^^^^^^^^^^^^^^^
这是一个示例片段,您需要计算从末尾搜索的字符,并以某种方式生成新的json。