xml-rpc を使用する場合、サーバー側は、$_POST 配列ではなく、主に PHP 入力ストリーム入力を通じてクライアント データを取得します。したがって、ここでは主に php 入力ストリーム php://input
について説明します。
php://input の概要については、PHP 公式マニュアル文書に明確に概要を説明した段落があります。
「php://input を使用すると、生の POST データを読み取ることができます。$HTTP_RAW_POST_DATA に代わるメモリ消費量が少なく、特別な php.ini ディレクティブは必要ありません。 php://input は enctype=”multipart/form では使用できません。」 -データ”.
翻訳すると、次のようになります:
"php://input は未処理の POST データを読み取ることができます。$HTTP_RAW_POST_DATA と比較してメモリへの負担が少なく、特別な php.ini 設定は必要ありません。php://input は enctype=multipart/form-data には対応できません。"
この概要をどう理解すればいいのか!? 3つのパートに分けて段階的に理解していきました。
1. POSTデータの読み込み
2. multipart/form-data 型には使用できません
3. php://input VS $HTTP_RAW_POST_DATA
POSTデータの読み込み
PHP を使用する場合は、組み込み変数 $_POST についてよく知っている必要があります。 $_POST と php://input の関係と違いは何ですか? また、クライアントがサーバーと対話するために最も一般的に使用されるメソッドは、POST に加えて GET です。 php://input は PHP の入力ストリームとして機能するので、GET データを読み込むことができますか?これら 2 つの質問が、このセクションで説明する必要がある主な内容です。
経験上、テストと観察から要約することは非常に効果的な方法であることがわかっています。ここでは、テストに役立つスクリプトをいくつか書きました。
@file 192.168.0.6:/phpinput_server.php 受信したデータを出力します
@file 192.168.0.8:/phpinput_post.php は、POST メソッド
によるフォーム データの送信をシミュレートします。
@file 192.168.0.8:/phpinput_xmlrpc.php は、POST メソッドを使用した xmlrpc リクエストの発行をシミュレートします。
@file 192.168.0.8:/phpinput_get.php は、GET メソッド
を使用したフォーム番号の送信をシミュレートします。
phpinput_server.php と phpinput_post.php
//@ファイル phpinput_server.php
$raw_post_data = file_get_contents('php://input', 'r');
echo "------$_POST-------";
echo var_dump($_POST) . "n";
echo "----------php://input---------------n";
echo $raw_post_data . "n";
?>
//@ファイル phpinput_post.php
$http_entity_body = 'n=' .urldecode('perfgeeks') .urldecode('7788');
$http_entity_type = 'application/x-www-form-urlencoded';
$http_entity_length = strlen($http_entity_body);
$host = '192.168.0.6';
$ポート = 80;
$path = '/phpinput_server.php';
$fp = fsockopen($host, $port, $error_no, $error_desc, 30);
if ($fp) {
fputs($fp, "POST {$path} HTTP/1.1rn");
fputs($fp, "ホスト: {$host}rn");
fputs($fp, "Content-Type: {$http_entity_type}rn");
fputs($fp, "Content-Length: {$http_entity_length}rn");
fputs($fp, "接続: より近いnrn");
fputs($fp, $http_entity_body . "rnrn");
while (!feof($fp)) {
$d .= fgets($fp, 4096);
}
fclose($fp);
echo $d;
}
?>
ngrep ツールを使用して http リクエスト パケットをキャプチャできます (検出する必要があるのは php://input であるため、ここでは http リクエスト パケットのみをキャプチャします)。テストスクリプトphpinput_post.phpを実行してみます。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

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

Dreamweaver Mac版
ビジュアル Web 開発ツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

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

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。
