>  기사  >  php教程  >  PHP로 POST 데이터를 얻는 세 가지 방법

PHP로 POST 데이터를 얻는 세 가지 방법

大家讲道理
大家讲道理원래의
2016-11-08 13:59:521488검색

방법 1, $_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 요청 헤더(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가 항상 $http_raw_post_data 변수에 POST 데이터를 채울 수 있도록 php.ini의 Always_populate_raw_post_data 값을 On으로 설정해야 합니다.


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