ホームページ 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 は http リクエスト パケット内の対応するデータを php://input に埋め込みません。他の場合には長さが埋められます。

4)、php://input データは Content-Type が application/x-www-data-urlencoded の場合にのみ一致します。

5)、php://。入力データは常に $HTTP_RAW_POST_DATA と同じですが、php://input は $HTTP_RAW_POST_DATA より効率的であり、php.ini に特別な設定を必要としません

6)。通常、$_POST を使用して APP または一部のインターフェイスからコールバック データを取得できない場合、GET メソッドによって送信される http リクエストの本文は空です。 php://input を使用してみてください。

1. XML データを受け入れる

//发送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);
ログイン後にコピー

2. 携帯電話経由で画像をサーバーにアップロードするためのミニ プログラム

Send

//@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; 
}
ログイン後にコピー

Receive

rreee

3: の元のテキストを取得します。 HTTP リクエスト

/**
 *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 入力フロー Chestnut 用の 3 つの小さなプログラムです。目的は、PHP 入力ストリームをより正確に理解できるようにすることです。

PHP 入力ストリーム php について説明した関連記事については、こちらをご覧ください。 ://input、PHP 中国語 Web サイトにご注意ください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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ヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)