ホームページ  >  記事  >  バックエンド開発  >  PHPポストで生データを受け取る例を詳しく解説

PHPポストで生データを受け取る例を詳しく解説

小云云
小云云オリジナル
2018-02-27 13:35:143604ブラウズ

この記事では主に、PHP で生データをポストで受信する詳細な例を紹介します。これが皆さんのお役に立てれば幸いです。

通常、ユーザーはブラウザの Web フォームを使用してサーバーにデータを投稿します。当社は PHP を使用して、ユーザーがサーバーに投稿したデータを受信し、適切に処理します。しかし、場合によっては、ユーザーがクライアント ソフトウェアを使用してサーバー PHP プログラムにポスト データを送信し、それを識別するために $_POST を使用できない場合は、どのように処理すべきでしょうか?データを受信する

$_POSTメソッド

$_POSTメソッドは、HTTP POSTメソッドを通じて渡される変数の配列であり、自動グローバル変数です。たとえば、$_POST['name'] を使用すると、Web フォームおよび Web ページから投稿されたデータを非同期で受信できます。つまり、$_POST は、ドキュメント タイプ Content-Type: application/x-www で送信されたデータのみを受信できます。 -フォーム-URLコード化。

$GLOBALS['HTTP_RAW_POST_DATA'] データを受信するメソッド

ポストで送信されたデータが text/xml や SOAP などの PHP が認識できるドキュメント タイプではない場合は、$GLOBALS を使用できます['HTTP_RAW_POST_DATA' ] を受信します。 $HTTP_RAW_POST_DATA 変数には、生の POST データが含まれています。この変数は、認識できない MIME タイプのデータが検出された場合にのみ生成されます。 $HTTP_RAW_POST_DATA は、enctype="multipart/form-data" フォーム データでは使用できません。つまり、$HTTP_RAW_POST_DATA を使用すると、Web フォームから投稿されたデータを受け取ることができません。

データを受信するための php://input メソッド

元の 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でのcurl get postリクエストの解析

postがデータを送信するときに表示される例外を処理する方法

以上がPHPポストで生データを受け取る例を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。