所以我想通过PHP编辑json文件中n个关联数组中的项目。 newcontent和index来自一个javascript,它通过POST将它们发送到这个php文件。 JSON文件如下所示:
[{"title":"This is a title","content":"foo bar","date":"Friday 25th May 2018
10:52:01 PM"}]
PHP:
<?PHP
if (isset($_POST['newcontent']) && isset($_POST['index'])) {
$data = file_get_contents("news.json");
$decoded = json_decode($data);
$index = $_POST['index'];
$newcontent = htmlspecialchars($_POST['newcontent']);
$newdate = date('l jS F Y h:i:s A');
$decoded[$index]["content"] = $newcontent;
$decoded[$index]["date"] = $newdate;
$output = json_encode($decoded);
file_put_contents("news.json", $output);
}
?>
那么这应该做的是通过索引值在json中选择正确的数组元素。然后更改&#34;内容&#34;的值它从POST获得的$ newcontent的关键,以及&#34; date&#34;的值。 $ newdate的关键。然后将其写回json文件&#34; news.json&#34;。但它只是不想编辑文件。它没有给我一个错误,它什么也没做。该文件保持不变。我检查了控制台,POST工作正常。
编辑:经过一些进一步的测试后,我发现条件设置($ _ POST [&#39; newcontent&#39;]没有返回true,所以其余的代码实际上并没有运行答案 0 :(得分:2)
您需要使用json_decode()
的可选第二个参数,以便它创建关联数组而不是对象。
$decoded = json_decode($data, true);