PHP가 POST 데이터를 얻는 세 가지 방법
방법 1, $_POST
$_POST 또는 $_REQUEST는 PHP에서 형식화된 데이터를 key=>value 형식으로 저장합니다.
방법 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 요청 헤더(header)의 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가 항상 작동하도록 php.ini의 Always_populate_raw_post_data 값을 On으로 설정해야 합니다. 변수 $http_raw_post_data를 입력합니다.
읽어주셔서 감사합니다. 도움이 되기를 바랍니다. 이 사이트를 지원해 주셔서 감사합니다!
PHP에서 POST 데이터를 얻는 세 가지 방법에 대한 자세한 예를 보려면 PHP 중국어 웹사이트의 관련 기사를 참고하세요!