>  기사  >  백엔드 개발  >  PHP에서 POST 데이터를 얻는 세 가지 방법에 대한 자세한 설명

PHP에서 POST 데이터를 얻는 세 가지 방법에 대한 자세한 설명

墨辰丷
墨辰丷원래의
2018-05-29 14:43:388112검색

이 글에서는 PHP가 POST 데이터를 얻는 세 가지 방법을 소개합니다. 첫 번째 방법은 $_POST, 두 번째 방법은 file_get_contents, 세 번째 방법은 전역 변수 $GLOBALS를 사용하는 것입니다. 자세한 내용은 아래 지침을 참조하세요.

POST를 얻기 위한 PHP 세 가지 데이터 방법

첫 번째 방법인 $_POST

$_POST 또는 $_REQUEST는 PHP에서 형식화된 데이터를 키=>값 형식으로 저장합니다.

방법 2, file_get_contents(“php://input”) 사용

Content-Type이 지정되지 않은 POST 데이터의 경우 file_get_contents(“php://input”)를 사용하여 원본 데이터를 얻을 수 있습니다. . 실제로 PHP를 사용하여 POST로 수신된 모든 데이터는 이 방법을 사용합니다. 콘텐츠 유형에 관계없이 바이너리 파일 스트림을 포함하는 것도 가능합니다.


$HTTP_RAW_POST_DATA와 비교하여 메모리에 대한 부담이 적고 특별한 php.ini 설정이 필요하지 않습니다.


php://input은 Content-Type이 multipart/form-data인 POST 데이터를 읽을 수 없습니다. php.ini의 Always_populate_raw_post_data 값을 On으로 설정해야 합니다.


php://input은 $_GET 데이터를 읽을 수 없습니다. 이는 $_GET 데이터가 http 요청의 본문 부분이 아닌 http 요청 헤더의 PATH 필드에 query_path로 기록되기 때문입니다.

방법 3, 전역 변수 $GLOBALS['HTTP_RAW_POST_DATA']

POST의 원본 데이터는 $GLOBALS['HTTP_RAW_POST_DATA']에 저장됩니다.


그러나 POST 데이터가 $GLOBALS['HTTP_RAW_POST_DATA']에 저장되는지 여부는 centent-Type 설정에 따라 다릅니다. PHP가 Content-Type을 인식할 수 없는 경우에만 POST 데이터가 그대로 채워집니다. $GLOBALS['HTTP_RAW_POST_DATA']. Content-Type=application/x-www-form-urlencoded인 경우 변수가 비어 있습니다.


또한 Content-Type이 multipart/form-data인 POST 데이터를 읽을 수 없습니다. 또한 php.ini의 Always_populate_raw_post_data 값을 On으로 설정해야 PHP가 항상 POST 데이터를 채울 수 있습니다. $http_raw_post_data 변수에 넣습니다.

위 내용은 이 글의 전체 내용입니다. 모든 분들의 공부에 도움이 되었으면 좋겠습니다.


관련 권장 사항:

PHP에서 WeChat 현금 빨간 봉투 기능을 구현하는 방법

PHP는 이 루프에서 나머지 코드를 건너뛸 때 주의할 점을 계속 인식하기 위해 사용합니다

PHP WeChat은 로그인 및 사용자에게 메시지를 보내는 방법을 시뮬레이션합니다

위 내용은 PHP에서 POST 데이터를 얻는 세 가지 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.