Как добавить данные в json файл не перетирая те данные, что там находятся?
Используя функцию fwrite(), наткнулся на одну проблему - те данные, что находились в файле заменяются новыми. Что нужно использовать для добавления новых данных в файл? Может нужно использовать другую функцию, по типу file_put_contents? Вот код пхп:
post.php
<?php
$ID = $_POST['pseudoID'];
$arr = $_POST;
unset($arr['pseudoID']);
$fullArray = array(
"pseudoID" => $ID,
"data" => array($arr)
);
$fullArray = json_encode($fullArray);
$file = fopen('token_data.json', 'w+');
fwrite($file,$fullArray);
fclose($file);
?>
Ответы (2 шт):
Автор решения: Nickolai Bondarenko
→ Ссылка
Для того, чтобы добавить новые данные, не перетирая старые, необходимо открыть файл в режиме записи, используя аргумент a+, который перемещает указатель в конец файла.
$file = fopen('token_data.json', 'a+');
Автор решения: Roman Grinyov
→ Ссылка
Если у вас в файле находится JSON и вы хотите добавить каки-либо данные в него, то можно сделать так:
$initialData = ['a' => 1];
file_put_contents('a.txt', json_encode($initialData));
$savedData = json_decode(file_get_contents('a.txt'), true);
$savedData['b'] = 2;
file_put_contents('a.txt', json_encode($savedData));
Если вы хотите добавить данные в конец файла, то можно опять же использовать file_put_contents() с флагом FILE_APPEND:
file_put_contents('a.txt', '1' . "\n");
file_put_contents('a.txt', '2' . "\n", FILE_APPEND);