PHP에서 데이터를 받을 때 보통 $_POST나 $_GET 변수를 많이 사용합니다.
그런데 JSON 형식이나 RAW 데이터로 전송된 데이터를 읽어야 할 땐 file_get_contents('php://input')를 사용해야 하는 경우가 있습니다.
📌 file_get_contents('php://input')란?
php://input은 HTTP 요청의 본문(body)에 담긴 RAW 데이터를 읽어오는 스트림입니다. 특히, REST API나 AJAX로 JSON 데이터를 전송할 때 자주 활용돼요.
📌 언제 사용하나요?
- POST 방식으로 JSON 데이터를 보낼 때
- 폼 데이터가 아닌 RAW 데이터 전송 시
- $_POST로 데이터를 받을 수 없을 때
📌 사용 예제
클라이언트에서 JSON 데이터를 보내고, 서버에서 이를 읽는 코드입니다.
// JSON 데이터 받기
$json = file_get_contents('php://input');
// JSON을 PHP 배열로 변환
$data = json_decode($json, true);
// 값 확인
echo $data['name'];
📌 $_POST와 차이점
- $_POST → 폼 데이터 전송용
- php://input → RAW 데이터 전송용
특히 JSON이나 XML 같은 데이터를 받을 땐 php://input이 훨씬 유용해요.
✅ 정리
- php://input은 요청의 RAW 데이터를 읽는다.
- REST API, AJAX JSON 전송에 필수
- json_decode()와 함께 사용하면 PHP 배열로 변환 가능
💡 다음 글 예고
다음 포스팅에서는 PHP로 JSON 데이터 응답 보내기를 쉽게 설명해드릴게요!