Итак, я хочу отредактировать элемент в ассоциативном массиве в файле json через PHP.Newcontent и index происходят из JavaScript, который отправляет их в этот файл php через POST.Файл 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 через значение индекса.Затем измените значение ключа «content» на $ newcontent, полученное из POST, а значение ключа «date» на $ newdate.Затем запишите его обратно в файл json "news.json".Но он просто не хочет редактировать файл.Это не дает мне ошибки, просто ничего не делает.Файл остается без изменений.Я проверил в консоли, и POST работает нормально.
EDIT: после некоторого дальнейшего тестирования я обнаружил, что условие установлено ($ _ POST ['newcontent'] не возвращает true, поэтому остальная часть кода не 'т на самом деле запустить