PUTリクエスト時のPHPのfile_get_contents('php://input') のバグ?仕様?

簡単に言うとPUTされたコンテンツが読みだすと消滅する問題


POSTや、PUTでHTTPのリクエストを送った際、ペイロードとして$_POSTでは扱えないひとつながりの文字列を送る場合がある。
その際、$_POSTでは取得できないため、file_get_contents('php://input') を使って取得するのが通例になっている。


しかし、どうやらHTTP的にPOSTした場合と、PUTした場合で挙動に違いがあるようだ。
具体的にはPOSTした場合、file_get_contents('php://input') を使って複数回取得しても値は消えないが、PUTの場合1回だけしか取得できないバグ? 仕様?があることが分かった。


ちなみに発生した環境は
PHPのバージョンは PHP 5.3.6
ApacheのバージョンはApache/2.2.19

また、POSTやPUTする時にはfile_get_contentsを使ってストリームコンテキストでメソッドのみを切り替えた感じ・・・


ちなみにDELETE時については未検証

追記:
ツイッター方面&ブクマからの情報によると↓のとおり「仕様」らしい
http://php.net/manual/ja/wrappers.php.php
情報を寄せてくれた方ありがとうございます・・・

しかし、だとしたらなんでPOSTだけ特別扱いなんだろう・・・??