본문 바로가기
카테고리 없음

PHP file_get_contents('php://input') 쉽게 이해하기

by 오디와이 2025. 5. 1.

PHP에서 데이터를 받을 때 보통 $_POST$_GET 변수를 많이 사용합니다.

 

그런데 JSON 형식이나 RAW 데이터로 전송된 데이터를 읽어야 할 땐 file_get_contents('php://input')를 사용해야 하는 경우가 있습니다.

📌 file_get_contents('php://input')란?

php://input은 HTTP 요청의 본문(body)에 담긴 RAW 데이터를 읽어오는 스트림입니다. 특히, REST APIAJAX로 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 데이터 응답 보내기를 쉽게 설명해드릴게요!