php jsonencode в файл, формат вопроса

Я пытаюсь создать json закодированный файл, используя php из опубликованных входов

$name =$_POST['n']; $age = $_POST['a']; $occ= $_POST['n']; $country = $_POST['n']; $jsoninfo = array('name'=>$name,'age'=>$age, 'occupation'=>$occ,'country'=>$country); $generated_json = json_encode($jsoninfo); echo $generated_json; file_put_contents('somefile', $generated_json, FILE_APPEND ); 

Когда я получаю 10 запросов на этот php-скрипт, файл создается как в следующем формате

 {"name":"steve","age":"40","occupation":"ceo","country":"us"} {"name":"steve","age":"40","occupation":"ceo","country":"us"} {"name":"steve","age":"40","occupation":"ceo","country":"us"} {"name":"steve","age":"40","occupation":"ceo","country":"us"} 

Q1. Когда я попытался проверить полученный выше json-текст в http://jsonlint.com/

я получаю сообщение об ошибке Expecting 'EOF', '}', ',', ']'

Q2. Как достичь нижеследующего формата

 [ {"name":"steve","age":"40","occupation":"ceo","country":"us"}, {"name":"steve","age":"40","occupation":"ceo","country":"us"}, {"name":"steve","age":"40","occupation":"ceo","country":"us"}, {"name":"steve","age":"40","occupation":"ceo","country":"us"} ] 

Конец , а также поле окончания ] необходимо добавить к каждой новой записи?

Вам нужно прочитать файл и декодировать его в массив, добавить к этому массиву, а затем записать весь массив.

 $name =$_POST['n']; $age = $_POST['a']; $occ= $_POST['n']; $country = $_POST['n']; $old_contents = file_get_contents('somefile'); $jsoninfo = $old_contents ? json_decode($old_contents) : array(); $jsoninfo[] = array('name'=>$name,'age'=>$age, 'occupation'=>$occ,'country'=>$country); $generated_json = json_encode($jsoninfo); echo $generated_json; file_put_contents('somefile', $generated_json); 

Пытаться:

 $name =$_POST['n']; $age = $_POST['a']; $occ= $_POST['n']; $country = $_POST['n']; $jsoninfo = array( 'name' => $name, 'age' => $age, 'occupation' => $occ, 'country' => $country ); $file = file_get_contents('some_file'); $file = json_decode($file); $file[] = $jsoninfo; $data = json_encode($file, JSON_FORCE_OBJECT); file_put_contents('somefile', $data);