> 백엔드 개발 > PHP 튜토리얼 > PHP에서 JSON POST 데이터를 어떻게 올바르게 읽을 수 있습니까?

PHP에서 JSON POST 데이터를 어떻게 올바르게 읽을 수 있습니까?

Barbara Streisand
풀어 주다: 2024-12-16 19:39:15
원래의
936명이 탐색했습니다.

How Can I Properly Read JSON POST Data in PHP?

PHP를 사용하여 JSON POST 읽기

JSON 형식의 데이터를 게시해야 하는 웹 서비스로 작업할 때 PHP에서 POST 값을 올바르게 처리하는 것이 중요합니다. 이 문서에서는 JSON POST 데이터를 효과적으로 읽고 구문 분석하는 단계를 안내합니다.

문제: Application/JSON Content-Type의 빈 $_POST 값

빈 $와 관련된 문제가 발생하는 경우 _POST 값은 application/json을 Content-Type으로 지정했음에도 불구하고 게시 값을 필터링하는 방식 때문일 수 있습니다. 이 경우 기존의 $_POST 변수는 JSON 형식의 데이터를 읽는 데 적합하지 않습니다.

해결 방법: file_get_contents('php://input')로 JSON 읽기

원시 데이터에 액세스하려면 JSON POST 데이터의 경우 file_get_contents('php://input')를 사용해야 합니다. 이 함수는 현재 스크립트의 입력 스트림을 읽고 원시 HTTP 요청 본문을 반환합니다.

수신 측에서 업데이트된 PHP 코드:

$json = file_get_contents('php://input');
$obj = json_decode($json);
로그인 후 복사

POST 데이터 처리 테스트 중 올바른

웹 서비스를 테스트할 때 POST 데이터가 올바른 형식으로 전송되는지 확인하는 것이 중요합니다. 테스트 코드에서:

  • json_encode($data)를 사용하여 데이터를 JSON 문자열로 변환합니다.
  • HTTP 헤더에서 Content-Type을 application/json으로 지정합니다.

업데이트된 테스트 code:

$data_string = json_encode($data);

$ch = curl_init('http://webservice.local/');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
        'Content-Type: application/json',
        'Content-Length: ' . strlen($data_string))
);

$result = curl_exec($ch);
$result = json_decode($result);
로그인 후 복사

헤더 구성에 대한 참고 사항

헤더('Content-type: application/json')가 수신 측에서 한 번만 호출되는지 확인하세요.

위 내용은 PHP에서 JSON POST 데이터를 어떻게 올바르게 읽을 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿