Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何向JSON文件添加数据而不完全覆盖其当前内容?(菲律宾)_Php_Json_Overwrite_File Put Contents - Fatal编程技术网

Php 如何向JSON文件添加数据而不完全覆盖其当前内容?(菲律宾)

Php 如何向JSON文件添加数据而不完全覆盖其当前内容?(菲律宾),php,json,overwrite,file-put-contents,Php,Json,Overwrite,File Put Contents,假设我的服务器上有一个info.JSON文件,其中包含以下数据: {"firstName":"John","age":"37"} 在PHP中,我想在info.JSON文件中添加另一个键/值对,例如某人的中间名。 如果我使用file_put_contents函数,将完全覆盖该文件。例如: $middleName = array("middleName" => "Bill"); file_put_contents("info.json",json_encode($middleName));

假设我的服务器上有一个info.JSON文件,其中包含以下数据:

{"firstName":"John","age":"37"}
在PHP中,我想在info.JSON文件中添加另一个键/值对,例如某人的中间名。 如果我使用file_put_contents函数,将完全覆盖该文件。例如:

$middleName = array("middleName" => "Bill");
file_put_contents("info.json",json_encode($middleName));
info.JSON文件的内容现在是:

{"middleName":"Bill"}
如何简单地向现有的.JSON文件添加更多的键/值对而不覆盖它


谢谢。

如果您使用json\u decode$json,请将true与true标志一起使用,以便将其作为关联数组返回。然后,您可以使用数组语法添加项,并在放入文件之前再次进行json_编码

$json=file_get_contents('path/to/your/file);
$temp = json_decode($json,true);
$temp['middleName'] ='Bill';
$json = json_encode($temp);
file_put_contents($json);

file\u put\u contents接受第三个参数,称为:flags,您可以传递诸如:file\u APPEND之类的内容。你还有一个猜测:阅读手册json_decodefile_get_contents'info.json'中关于函数的更多信息,这样你就可以更容易地处理一个PHP对象,然后写回该文件。@Rizier123似乎只是附加到该文件中很可能会破坏json,你认为呢?嘿,我对旧问题注释了新代码:DYeah,将内容添加到文件只是将其添加到文件末尾。这不是正确格式的JSON。我会试试你的解决办法,不要惊慌。