>백엔드 개발 >PHP 문제 >PHP에서 게시물 매개변수를 얻는 방법이 있나요?

PHP에서 게시물 매개변수를 얻는 방법이 있나요?

L
L원래의
2020-06-01 16:52:113400검색

PHP에서 게시물 매개변수를 얻는 방법이 있나요?

PHP가 게시 매개변수를 얻는 여러 가지 방법

PHP에서 기본적으로 인식하는 데이터 유형은 application/x-www.form-urlencoded 표준 데이터 유형입니다.

1. $_POST['paramName'] Content-Type이 application/x-www-form-urlencoded 또는 multipart/form-data인 경우에만 PHP는 http 요청 패킷의 본문 데이터 중 해당 부분을 보냅니다. $_POST 전역 변수에, 그렇지 않으면 PHP가 이를 무시합니다. $_POST 배열에 채워진 데이터는 urldecode() 구문 분석의 결과입니다.

2. file_get_contents("php://input")는 대부분의 콘텐츠 유형에 적합합니다.

php://input을 사용하면 POST의 원시 데이터를 읽을 수 있습니다. $HTTP_RAW_POST_DATA보다 메모리에 대한 부담이 적고 특별한 php.ini 설정이 필요하지 않습니다. php://input은 enctype="multipart/form-data"와 함께 사용할 수 없습니다.

3. $GLOBALS['HTTP_RAW_POST_DATA']; 항상 원본 POST 데이터가 포함된 $HTTP_RAW_POST_DATA 변수를 생성합니다. 이 변수는 인식할 수 없는 MIME 유형의 데이터가 발견된 경우에만 생성됩니다. enctype="multipart/form-data" 양식 데이터에는 $HTTP_RAW_POST_DATA를 사용할 수 없습니다.

게시된 데이터가 PHP에서 인식되지 않는 경우 $GLOBALS['HTTP_RAW_POST_DATA']를 사용하여 text/xml 또는 비누 등을 받을 수 있습니다. PHP가 항상 $http_raw_post_data 변수에 POST 데이터를 채울 수 있도록 php.ini의 Always_populate_raw_post_data 값을 On으로 설정해야 합니다.

공식 문서를 보면 상위 버전에서 이 변수 ​​$HTTP_RAW_POST_DATA는 더 이상 사용되지 않습니다.
이 기능은 PHP 5.6.0에서 더 이상 사용되지 않으며 PHP 7.0.0에서는 제거되었습니다. 일반적으로 $ 대신 php://input을 사용해야 합니다. HTTP_RAW_POST_DATA.

요약:

1. Coentent-Type은 값이 application/x-www-data-urlencoded 및 multipart/form-data인 경우에만 http 요청 패킷에 해당 데이터를 채웁니다.

2, PHP가 Content-Type 유형을 인식할 수 없는 경우 http 요청 패키지의 해당 데이터는 $HTTP_RAW_POST_DATA

3 변수에 채워집니다. Coentent-Type이 multipart/form-data가 아닌 경우에만 PHP가 채웁니다. http 요청 패킷의 해당 데이터를 php://input으로 입력합니다. 그렇지 않으면 다른 상황에서도 동일합니다. Coentent-Length로 지정된 패딩 길이입니다.

4. Content-Type이 application/x-www-data-urlencoded인 경우에만 php://input 데이터가 $_POST 데이터와 일치합니다.

5. php://input 데이터는 항상 $HTTP_RAW_POST_DATA와 동일합니다. Content-Type이 multipart/form-data가 아닌 데이터만 읽습니다. 그러나 php://input은 $HTTP_RAW_POST_DATA보다 효율적입니다. php.ini

6을 특별히 설정하면 PHP는 PATH 필드의 query_path 부분을 전역 변수 $_GET에 채웁니다. 일반적으로 GET 메소드로 제출된 http 요청의 본문은 비어 있습니다.

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

8. application/x-www-form-urlencoded 및 multipart/form-data 형식인 경우 $_POST를 사용하세요.

9.text/xml, application/json, 비누, file_get_contents( 'php://input') 사용

추천 튜토리얼: "

PHP 튜토리얼"

위 내용은 PHP에서 게시물 매개변수를 얻는 방법이 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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