>  기사  >  php教程  >  PHP에서 POST 데이터를 얻는 세 가지 방법의 자세한 예

PHP에서 POST 데이터를 얻는 세 가지 방법의 자세한 예

高洛峰
高洛峰원래의
2016-12-23 16:35:511512검색

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 중국어 웹사이트의 관련 기사를 참고하세요!


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