2014-06-18 2 views
-1

모든 양식 제출 후 JSON을 파일에 추가해야하는 프로젝트에서 작업 중입니다. 내 목표는 JSON 모습을 얻을 수 있습니다 :PHP에서이 형식의 JSON

{ 
    "word0":[ 
    "cheese", 
    "burger" 
    ], 

    "word1":[ 
    "sup", 
    "boi" 
    ], 

    "word2":[ 
    "nothin'", 
    "much" 
    ] 
} 

하지만 나중에 JSON 파일에 추가 할 수 아니에요.

편집 : 모든 양식 제출을 위해 새 파일을 만드는 것에 대해 생각하고 있습니다. 이것이 더 나은 선택일까요? 당신은 당신이 모든 양식의 새 파일을 할 수있는 스토리지 크기에 아무런 문제가없는 경우 잘

$response['word' . $count] = array('word1' => $_POST['firstrow'], 'word2' => $_POST['secondrow']); 
file_put_contents("query.json", file_get_contents("query.json") . json_encode($response) . "\n"); 
+0

귀하의 시도를 성취 해 주시면 해결하도록 도와 드리겠습니다. – VikingBlooded

+0

$ 응답 [ 'word'. $ count] = array ('word1'=> $ _POST [ 'firstrow'], 'word2'=> $ _POST [ 'secondrow']); \t \t \t file_put_contents ("query.json", file_get_contents ("query.json") .json_encode ($ response). "\ n"); 다음은 JSON을 파일에 저장하는 현재 코드입니다. –

+0

@ 사용자 귀하의 의견에 코드를 포함하도록 질문을 편집했습니다. 코멘트 섹션에 코드 스 니펫을 게시하는 것을 자제하십시오. – War10ck

답변

1

:

여기 파일에 JSON을 배치 내 현재 코드입니다 (저장 크기는 문제가되지 않습니다) 제출.

하지만 파일을 쓰는 것을 읽으면 하나의 큰 파일로 만들 수 있습니다. 당신이 당신의 IO에 저장하려면

$data = json_decode(file_get_contents("data.json"), true); 
$data["word3"] = array("i don't" , "know"); 
file_put_contents("data.json", json_encode($data)); 

, 당신은 fseek를 통해 특정 위치에 쓰기를 할 수 있습니다.

$file = fopen("data.json", "c"); 
fseek($file, -5, SEEK_END); // 5 character back from the end of the file. 
fwrite($file, $newJsonArrayElement); 
fclose($file); 

^^^^^^^^^^^^^^^^^^^^^^^^^

이 예제 snipper, 당신에게 문자를 계산해야합니다입니다 끝에서 다시 찾고 어떻게 든 새로운 json을 생성하십시오.

+1

''json_decode'의 사용법이 잘못되었습니다. '$ data [ 'word3']'와 같은 연관 배열로 데이터에 접근하려면'json_decode'의 두 번째 매개 변수로'true'의 값을 전달해야합니다. 기본적으로 ['json_decode()'] (http://us3.php.net//manual/en/function.json-decode.php)는'stdClass' 객체로 직렬화됩니다. – War10ck

+0

확실, 잊어 버렸습니다. 수정 해 주셔서 고마워요. –