이 기사는 주로 PHP로 원시 데이터를 수신하는 자세한 예를 공유합니다. 이것이 모든 사람에게 도움이 되기를 바랍니다.
일반적으로 사용자는 서버에 데이터를 게시하기 위해 브라우저 웹 양식을 사용합니다. 우리는 사용자가 서버에 게시한 데이터를 수신하고 적절하게 처리하기 위해 PHP를 사용합니다. 그러나 경우에 따라 사용자가 클라이언트 소프트웨어를 사용하여 서버 PHP 프로그램에 게시 데이터를 보내고 $_POST를 사용하여 이를 식별할 수 없는 경우 어떻게 처리해야 합니까?
$_POST 데이터 수신 방법
$_POST 방법은 자동 전역 변수인 HTTP POST 방법을 통해 전달되는 변수 배열입니다. 예를 들어, $_POST['name']을 사용하는 경우 웹 양식 및 웹 페이지에서 게시된 데이터를 비동기적으로 수신할 수 있습니다. 즉, $_POST는 Content-Type: application/x-www 문서 유형으로 제출된 데이터만 수신할 수 있습니다. -form-urlencoded.
$GLOBALS['HTTP_RAW_POST_DATA'] 데이터 수신 방법
우편으로 보낸 데이터가 text/xml, SOAP 등 PHP가 인식할 수 있는 문서 유형이 아닌 경우 $GLOBALS를 사용할 수 있습니다. ['HTTP_RAW_POST_DATA' ] 수신합니다. $HTTP_RAW_POST_DATA 변수에는 원시 POST 데이터가 포함되어 있습니다. 이 변수는 인식할 수 없는 MIME 유형의 데이터가 발견된 경우에만 생성됩니다. enctype="multipart/form-data" 양식 데이터에는 $HTTP_RAW_POST_DATA를 사용할 수 없습니다. 즉, $HTTP_RAW_POST_DATA를 사용하면 웹 양식에서 게시된 데이터를 받을 수 없습니다.
데이터를 수신하는 php://입력 방법
원본 POST 데이터에 액세스하는 더 좋은 방법은 php://input입니다. php://input을 사용하면 POST의 원시 데이터를 읽을 수 있습니다. $HTTP_RAW_POST_DATA보다 메모리에 대한 부담이 적고 특별한 php.ini 설정이 필요하지 않지만 php://input은 enctype="multipart/form-data"와 함께 사용할 수 없습니다.
예를 들어, 사용자는 클라이언트 애플리케이션을 사용하여 파일을 서버에 게시합니다. 파일의 내용은 중요하지 않지만 파일을 서버에 완전히 저장하려면 다음 코드를 사용할 수 있습니다. :
$input = file_get_contents('php://input'); file_put_contents($original, $input); //$original为服务器上的文件
위 코드는 file_get_contents('php://input')를 이용해 포스팅 데이터를 받아 $original 파일에 쓰는 것으로 이해될 수 있습니다. 클라이언트에서 서버로. 특히 PHP 개발이 C, C++ 및 기타 애플리케이션 개발과 공동으로 제품을 개발해야 할 때 사용됩니다.
관련 추천:
php는 대용량 데이터 게시 시 손실 문제를 해결합니다
게시물이 데이터를 제출할 때 표시되는 예외를 처리하는 방법
위 내용은 PHP 포스트에서 Raw 데이터를 받는 예제에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!