이 글은 주로 PHP에서 $GLOBALS['HTTP_RAW_POST_DATA']와 $_POST의 차이점을 소개하고 있으며, $GLOBALS['HTTP_RAW_POST_DATA']와 $_POST의 기능과 사용법을 구체적인 사례를 바탕으로 분석하여 참고하실 수 있습니다.
세부 정보를 다음과 같이 변경합니다.
$_POST
:通过 HTTP POST 方法传递的变量组成的数组。是自动全局变量。$GLOBALS['HTTP_RAW_POST_DATA']
: $HTTP_RAW_POST_DATA 변수는 항상 생성되며 원본 POST 데이터를 포함합니다. 이 변수는 인식할 수 없는 MIME 유형의 데이터가 발견된 경우에만 생성됩니다. $HTTP_RAW_POST_DATA는 enctype="multipart/form-data" 양식 데이터에는 사용할 수 없습니다.
즉, 기본적으로 $GLOBALS['HTTP_RAW_POST_DATA']와 $_POST는 동일합니다.
그러나 게시된 데이터가 PHP에서 인식되지 않는 경우 $GLOBALS['HTTP_RAW_POST_DATA']를 사용하여 text/xml 또는 비누 등을 받을 수 있습니다.
추가 설명: PHP에서 기본적으로 인식하는 데이터 유형은 application/x-www.form-urlencoded 표준 데이터 유형입니다.
설명서에는 다음과 같이 나와 있습니다.
항상 원본 POST 데이터가 포함된 변수를 생성하세요. 그렇지 않으면 이 변수는 인식할 수 없는 MIME 유형의 데이터가 발견될 때만 생성됩니다. 그러나 원시 POST 데이터에 액세스하는 더 좋은 방법은 php://input입니다. enctype="multipart/form-data" 양식 데이터에는 $HTTP_RAW_POST_DATA를 사용할 수 없습니다.
질문: $HTTP_RAW_POST_DATA == $_POST인가요?
설명서에 따르면 대답은 '아니오'여야 합니다.
만약 다르다면 차이점은 무엇인가요?
다음과 같이 답을 알고 있습니다.
RAW/해석되지 않은 HTTP POst 정보는 다음을 통해 액세스할 수 있습니다.
$GLOBALS['HTTP_RAW_POST_DATA']
이는 게시물의 Content-Type이 PHP가 이해하는 것이 아닌 경우에 유용합니다. (예: text/xml).
즉, 기본적으로 $GLOBALS['HTTP_RAW_POST_DATA']와 $_POST는 동일합니다. 하지만게시된 데이터가 PHP에서 인식되지 않으면 $GLOBALS['HTTP_RAW_POST_DATA']를 사용하여 text/xml 또는 비누 등을 받을 수 있습니다.
PHP에서 기본적으로 인식하는 데이터 유형은 application/x-www.form-urlencoded 표준 데이터 유형입니다.
Content-Type=text/xml 유형을 사용하여 xml 문서의 내용을 PHP 서버에 제출하는 방법. 이 POST 데이터를 얻으시겠습니까?
RAW/해석되지 않은 HTTP POST 정보는 다음을 통해 액세스할 수 있습니다: $GLOBALS['HTTP_RAW_POST_DATA'] 이는 게시물의 Content-Type이 PHP가 이해하는 것이 아닌 경우에 유용합니다(예: text/xml).
Due 기본적으로 PHP는 application/x-www.form-urlencoded 표준 데이터 유형만 인식합니다. 따라서 text/xml과 같은 콘텐츠는 $_POST 배열로 구문 분석될 수 없으므로 프로토타입은 유지되어 $GLOBALS['로 전달됩니다. HTTP_RAW_POST_DATA']를 수신합니다.
이 기능을 구현할 수 있는 php://input도 있습니다.
php://input을 사용하면 POST의 원본 데이터를 읽을 수 있습니다. $HTTP_RAW_POST_DATA보다 메모리에 대한 부담이 적고 특별한 php.ini 설정이 필요하지 않습니다. php://input은 enctype="multipart/form-data"와 함께 사용할 수 없습니다.
응용 프로그램:
a.htm:
<form action="post.php" method="post"> <input type="text" name="user"> <input type="password" name="password"> <input type="submit"> </form>
post.php:
<? echo file_get_contents("php://input"); ?>
tomcat 구성 $_ post, $_get을 사용할 수 없습니다.
위 내용은 PHP에서 $GLOBALS['HTTP_RAW_POST_DATA']와 $_POST의 차이점에 대한 자세한 그래픽 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!