JSON 페이로드가있는 다른 시스템에서 POST를 받기 위해 간단한 PHP를 작성하고 있습니다. 그 요청은 Content-Type : application/json입니다.PHP - POST json 수신 문제가 발생했습니다.
나는 시작점으로 tson 파일에 json을 덤프하려고 시도하고 있지만 그럴 일은 없다. 다음은 PHP 파일입니다. 제안/수정 사항은 매우 감사하겠습니다! 그것의 모양에서?>
JSON 페이로드가있는 다른 시스템에서 POST를 받기 위해 간단한 PHP를 작성하고 있습니다. 그 요청은 Content-Type : application/json입니다.PHP - POST json 수신 문제가 발생했습니다.
나는 시작점으로 tson 파일에 json을 덤프하려고 시도하고 있지만 그럴 일은 없다. 다음은 PHP 파일입니다. 제안/수정 사항은 매우 감사하겠습니다! 그것의 모양에서?>
<?php
ini_set("display_errors", "On");
session_start();
$raw_json = file_get_contents('php://input');
$cooked_json = json_decode($raw_json);
$myfile = fopen('/home/wgordon/log.txt','a');
$fp = fwrite($myfile, $cooked_json);
fclose($myfile);
는 $ raw_json의 초기 값은 문자열이 될 것입니다. 배열로 액세스하려고하면 더 작은 문자열 만 반환합니다. 이것을 json_decode에 전달하면 아마도 null을 반환 할 것입니다.
$ raw_json의 첫 번째 값을 검사해야합니다. 이름/값 쌍의 쿼리 문자열로 들어 오면 배열처럼 취급하기 전에 split() 또는 이와 유사한 것을 사용하여 디코딩해야합니다.
동의합니다. 문제. 그러나, 나는 file_get_contents 중 하나에 대한 URL도 확실하지 않습니다. 또는 그 자리 표시 자입니까? – Digitalis
IO 스트림입니다. $ _REQUEST를 통해 오지 않기 때문에 PUT 요청에서 데이터를 가져 오는 데 자주 사용됩니다. – chriswoodford
아, 알았습니다. 나는 그것을 몰랐다. 내 사과. – Digitalis
은 Ajax를 통한 것입니까? – Digitalis
POST 요청입니까? Ajax를 사용할 수도 있지만 그 부분을 제어 할 수는 없지만 요청에서 볼 수있는 내용이 있다면 알려주세요. –
그렇다면 문제는 게시물을 사용하고 있지 않은 것일 수 있습니다. . 게시물의 출력물을 버리려고 했습니까? – Digitalis