PHP には $_GET と $_POST がありますが、$_PUT はないので、それを使用する必要がある場合は、自分でシミュレートする必要があります:
コードをコピーします コードは次のとおりです:
$_PUT = array();
if ('PUT' == $_SERVER['REQUEST_METHOD']) {
parse_str(file_get_contents('php://input'), $_PUT);
取得したデータphp://input 経由のデータは生データなので、parse_str を使用して解析する必要があります。
ただし、フォームが enctype="multipart/form-data" タイプ (つまり、アップロードされたファイルのタイプ) の場合、このメソッドは無効であることに注意してください (この時点では php://input は空です) ) PHP は、要求された Content-Type が multipart/form-data であることを検出すると、ユーザーに代わってフォーム データを無条件に処理し、$_FILES に保存します。現時点では、生データを取得することはできず、一部のみ使用できます。たとえば、httpd.conf を変更します (RequestHeader 構文を使用するには、最初にヘッダー モジュールをアクティブにしてください):
コードをコピー コードは次のとおりです:
RequestHeader set Content-Type foobar
Content-Type リクエスト ヘッダーを foobar にリセットすると、php は次のようになります。 //input にはこの時点でデータが存在しますが、元の $ _FILES データは存在しないため、基本的にはデモンストレーションの意味しかありません。生のデータを取得したい場合は、そのデータに基づいて自分で生成するしかありません。 PEAR での同様の実装: HTTP_Request2_MultipartBody。
ブラウザでは通常、GET/POST メソッドの使用のみが許可されていますが、JS を介して PUT メソッドを送信することはできますが、相対的に言えば、コマンド ラインで CURL コマンドを使用する方がはるかに便利で非常に便利です。開発中とテスト中に次のことを学ぶ必要があります:
curl -X PUT http://www.domain.com/demo.php -d "id=1" -d "title=a"
これはPUTメソッドID、タイトルデータ、テスト中のdemo.phpのコードを介して送信します。上記のphp://inputと似ているため、詳細は説明しません。
追加: php.ini の always_populate_raw_post_data 設定に注意してください。
http://www.bkjia.com/PHPjc/321517.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/321517.html技術記事 PHP には $_GET と $_POST がありますが、$_PUT はないので、それを使用する必要がある場合は、自分でシミュレートする必要があります。次のようにコードをコピーします。 $_PUT = array() if ('PUT' == $_SER ...