PHP 개발에서는 json이라는 데이터 유형을 만나게 됩니다. 이 유형은 배열과 비슷하지만 배열이 아닙니다. 오늘은 json 유형의 데이터를 수신하는 PHP에 대해 이야기하겠습니다. PHP가 json을 어떻게 처리하는지 살펴보겠습니다!
Chrome의 백엔드 네트워크를 사용하여 JQuery의 $.ajax()를 통해 json 데이터가 PHP에 게시될 때 여러 상황을 분석했습니다.
PHP에서 $_POST 및 $_REQUEST를 통해 json 데이터를 얻을 수 없습니다. 즉
$json = $_POST['json']; // empty($json) 为1
(참고: PHP는 기본적으로 application/x-www.form-urlencoded 표준 데이터 유형만 인식합니다. 따라서 text/xml, SOAP 또는 application/octet-stream과 같은 콘텐츠는 구문 분석할 수 없습니다. $_POST 배열을 사용하면 실패합니다.
사례 1:
js가 contentType: "application/json; charset=utf-8",
var submit_sync = function() { $.ajax({ type: "post", url: 'add-post-json.php', async: false, // 使用同步方式 // 1 需要使用JSON.stringify 否则格式为 a=2&b=3&now=14... // 2 需要强制类型转换,否则格式为 {"a":"2","b":"3"} data: JSON.stringify({ a: parseInt($('input[name="a"]').val()), b: parseInt($('input[name="b"]').val()), now: new Date().getTime() // 注意不要在此行增加逗号 }), dataType: "json", success: function(data) { $('#result').text(data.result); } // 注意不要在此行增加逗号 }); }
속성을 추가하지 않습니다. $GLOBALS['HTTP_RAW_POST_DATA'], 즉
$json = $GLOBALS['HTTP_RAW_POST_DATA']; // empty($json) 为 1
file_get_contents("php://input")를 사용하여 데이터를 얻을 수 있습니다. 즉,
$json = file_get_contents("php://input"); // empty($json) 为 0
2:
contentType 속성을 추가합니다: "application/json; charset=utf-8",
var submit_sync = function() { $.ajax({ type: "post", url: 'add-post-json.php', async: false, // 使用同步方式 // 1 需要使用JSON.stringify 否则格式为 a=2&b=3&now=14... // 2 需要强制类型转换,否则格式为 {"a":"2","b":"3"} data: JSON.stringify({ a: parseInt($('input[name="a"]').val()), b: parseInt($('input[name="b"]').val()), now: new Date().getTime() // 注意不要在此行增加逗号 }), contentType: "application/json; charset=utf-8", dataType: "json", success: function(data) { $('#result').text(data.result); } // 注意不要在此行增加逗号 }); }
$GLOBALS['HTTP_RAW_POST_DATA']를 사용하여 데이터를 가져옵니다. 즉,
$json = $GLOBALS['HTTP_RAW_POST_DATA']; // empty($json) 为 0
file_get_contents("php://input")를 사용하여 데이터를 가져옵니다. 즉
$json = file_get_contents("php://input"); // empty($json) 为 0
(참고: php://input을 사용하면 POST의 원시 데이터를 읽을 수 있습니다. $HTTP_RAW_POST_DATA에 비해 더 많은 메모리를 가져옵니다. 문제 스트레스가 적고 특별한 php.ini 설정이 필요하지 않습니다. php://input은 enctype="multipart/form-data"에 사용할 수 없습니다.
이 기사는 이것이 전부입니다. 도움이 되기를 바랍니다. 모두가 도움을 제공합니다! PHP JSON 관련 기능의 사용 예에 대한 설명 된 관련 권장 사항 : PHP JSON 중국인 갈색 코드에 대한 솔루션에 대한 솔루션 json json hums the Advern
위 내용은 JSON 값 전송 및 PHP 수신의 여러 상황의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!