PHP は HTTP POST でさまざまな形式のデータを取得します

藏色散人
リリース: 2023-04-06 12:12:02
転載
2878 人が閲覧しました

HTTP プロトコルの POST メソッドには複数の形式のデータ プロトコルがあり、HTTP ヘッダーのさまざまな Content-type によって識別されます。一般的に使用されるものは、

application/x-www-form です。 - 最も一般的な urlencoded は、from フォームの形式であり、HTTP ヘッドでは、Content-Type: application/x-www-form-urlencoded.

になります。

multipart/form-data、これはファイルのアップロードに使用され、HTTP ヘッドでは Content-Type: multipart/form-data; border=----WebKitFormBoundary7MA4YWxkTrZu0gW になります。

Raw これは特に一般的には使用されません。送信されるデータは HTTP ボディに 1 つのセグメントのみを持ち、キーと値のペアの形式で格納されません。HTTP ヘッドでは、Content-タイプ: application/jsonContent-Type: textContent-Type: application/xmlContent-Type: text/xml など

Content-Type: application/x-www-form-urlencoded

の場合、このフォームのデータは、$_POST['name']を使用してphpで直接取得できます。特別な

Content-Type: multipart/form-data;

この形式のデータは、php で $_POST['name'] を使用して取得できます。 $_FILES['file'].Raw 形式のデータの場合、上記 2 つの方法では取得できないため、他の方法を使用する必要があります。

1.

file_get_contents("php://input")

Get を使用します; テストするために簡単な php ファイルを作成します<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">&lt;?php $test=file_get_contents(&quot;php://input&quot;); echo $test;</pre><div class="contentsignin">ログイン後にコピー</div></div>postman でテストします

PHP は HTTP POST でさまざまな形式のデータを取得します問題ありません、受信できます

2.

$GLOBALS['HTTP_RAW_POST_DATA']

Receive<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">&lt;?php $test=$GLOBALS[&amp;#39;HTTP_RAW_POST_DATA&amp;#39;]; echo $test;</pre><div class="contentsignin">ログイン後にコピー</div></div>を使用して postman でテストしてください

PHP は HTTP POST でさまざまな形式のデータを取得します クソ、何か問題が発生しました。プロンプトが見つかりませんでした。

HTTP_RAW_POST_DATA

この配列インデックスは一体何ですか? Google で検索したところ、次の段落を見つけました。 PHP Words の公式サイト

PHP は HTTP POST でさまざまな形式のデータを取得します

HTTP_RAW_POST_DATA

は php5.6 で廃止され、php7.0 以降のバージョンでは削除されていることがわかりました。私が使用しているのは、php のバージョンが 7.2 です。何かが間違っているはずです。わかりました。

file_get_contents("php://input")

Get it 実際の開発では、 , フレームワークを使うのが一般的ですが、私はthinkphpをよく使います。tp5.0ではRequestのgetInput()関数を使ってRaw

<?php

namespace app\index\controller;

use think\Request;

class Index
{
    public function index(Request $request)
    {
        echo $request->getInput();
    }
}
ログイン後にコピー

Test it

のデータを取得できます。

PHP は HTTP POST でさまざまな形式のデータを取得します問題ありません、普通に取得できます

ここではPHPでHTTP POSTデータを取得する方法を紹介しますので、困っている方の参考になれば幸いです!

以上がPHP は HTTP POST でさまざまな形式のデータを取得しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
php
ソース:aliyun.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート