php教程 PHP开发 PHP 입력 스트림 php://input 예제 설명

PHP 입력 스트림 php://input 예제 설명

Dec 23, 2016 pm 01:01 PM

php://input에 대한 소개와 관련하여 PHP 공식 매뉴얼 문서에는 이를 명확하게 설명하는 단락이 있습니다.
“php://input을 사용하면 원시 POST 데이터를 읽을 수 있습니다. $HTTP_RAW_POST_DATA에 비해 메모리 사용량이 적고 특별한 php.ini 지시어가 필요하지 않습니다. php://input은 enctype=과 함께 사용할 수 없습니다. multipart/form-data".

번역하면 다음과 같습니다.
"php://input은 처리되지 않은 POST 데이터를 읽을 수 있습니다. $HTTP_RAW_POST_DATA와 비교할 때 메모리에 대한 부담이 적고 특별한 php.ini 설정이 필요하지 않습니다. php://input은 enctype=multipart/form-data”에 사용할 수 없습니다.
요약은 다음과 같습니다.

1) Coentent-Type은 application/x-www 값만 사용합니다. -data- urlencoded 및 multipart/form-data의 두 가지 경우에서 PHP는 http 요청 패킷의 해당 데이터를 전역 변수 $_POST

2)에 채웁니다. 이때 Content-Type 유형은 다음과 같습니다. PHP에서 인식되지 않습니다. http 요청 패킷의 해당 데이터는 $HTTP_RAW_POST_DATA 변수에 채워집니다

3) Coentent-Type이 multipart/form-data인 경우에만 PHP는 해당 데이터를 채우지 않습니다. php://input의 데이터, 그렇지 않은 경우 채워진 길이는 Coentent-Length에 의해 지정됩니다. 4) Content-Type이 application/x-www-data-urlencoded인 경우에만 php:/ /input 데이터는 $_POST 데이터와 일치합니다.

5) php://input 데이터는 항상 $HTTP_RAW_POST_DATA와 동일하지만 php://input은 $HTTP_RAW_POST_DATA보다 효율적이며 특별할 필요가 없습니다. .php.ini

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

결론적으로 $_POST를 사용하여 APP나 일부 인터페이스에서 콜백 데이터를 가져올 수 없는 경우 php://input을 사용해 보세요

1. xml 데이터 허용

2. 휴대폰에서 서버로 사진을 업로드하는 작은 프로그램

보내기

//发送xml数据
$xml = &#39;<xml>xmldata</xml>&#39;;//要发送的xml 
$url = &#39;http://localhost/test/getXML.php&#39;;//接收XML地址 
$header = &#39;Content-type: text/xml&#39;;//定义content-type为xml 
$ch = curl_init(); //初始化curl 
curl_setopt($ch, CURLOPT_URL, $url);//设置链接 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//设置是否返回信息 
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);//设置HTTP头 
curl_setopt($ch, CURLOPT_POST, 1);//设置为POST方式 
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);//POST数据 
$response = curl_exec($ch);//接收返回信息 
if(curl_errno($ch)){//出错则显示错误信息 
print curl_error($ch); 
} 
curl_close($ch); //关闭curl链接 
echo $response;//显示返回信息 
 
 
// php用file_get_contents("php://input")或者$HTTP_RAW_POST_DATA可以接收xml数据
$xmldata = file_get_contents("php://input"); 
$data = (array)simplexml_load_string($xmldata);
로그인 후 복사
받기


3: 원본 텍스트 가져오기 HTTP 요청
//@file phpinput_post.php 
$data=file_get_contents(&#39;btn.png&#39;); 
$http_entity_body = $data; 
$http_entity_type = &#39;application/x-www-form-urlencoded&#39;; 
$http_entity_length = strlen($http_entity_body); 
$host = &#39;127.0.0.1&#39;; 
$port = 80; 
$path = &#39;/image.php&#39;; 
$fp = fsockopen($host, $port, $error_no, $error_desc, 30); 
if ($fp){ 
fputs($fp, "POST {$path} HTTP/1.1\r\n"); 
fputs($fp, "Host: {$host}\r\n"); 
fputs($fp, "Content-Type: {$http_entity_type}\r\n"); 
fputs($fp, "Content-Length: {$http_entity_length}\r\n"); 
fputs($fp, "Connection: close\r\n\r\n"); 
fputs($fp, $http_entity_body . "\r\n\r\n"); 
 
while (!feof($fp)) { 
 $d .= fgets($fp, 4096); 
} 
fclose($fp); 
echo $d; 
}
로그인 후 복사

위 내용은 PHP 입력 흐름에 대한 세 가지 작은 내용입니다. 모든 사람이 PHP 입력 흐름을 더 정확하게 이해할 수 있도록 돕기 위한 것입니다.
/**
 *Recieve image data
 **/
error_reporting(E_ALL);
 
function get_contents() {
 $xmlstr= file_get_contents("php://input");
 $filename=file_put_contentsxmltime().&#39;.png&#39;;
 if(($filename,$str)){
 echo &#39;success&#39;;
 }else{
 echo &#39;failed&#39;;
 } 
  }
get_contents();
로그인 후 복사

더 보기 PHP 입력 흐름 php.://input 예제 관련 기사는 PHP 중국어 웹사이트

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)