ホームページ  >  記事  >  バックエンド開発  >  PHP シミュレーション $_PUT 実装コード_PHP チュートリアル

PHP シミュレーション $_PUT 実装コード_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:39:47680ブラウズ

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.comtru​​ehttp://www.bkjia.com/PHPjc/321517.html技術記事 PHP には $_GET と $_POST がありますが、$_PUT はないので、それを使用する必要がある場合は、自分でシミュレートする必要があります。次のようにコードをコピーします。 $_PUT = array() if ('PUT' == $_SER ...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。