コードを眺めていたらこんな一文を目にしました。
file_get_contents( 'php://input' );
このコードが何をやっているのか全くわからなかったので調べてみました。 まず、file_get_contents()についてです。PHPのドキュメントを確認すると以下のように書かれています。
(PHP 4 >= 4.3.0, PHP 5, PHP 7) file_get_contents — ファイルの内容を全て文字列に読み込む
すなわち、file_get_contents()は引数に指定したファイルの内容を読み込むみたいです。使用例として、以下のような例文がありました。
<?php $homepage = file_get_contents('http://www.example.com/'); echo $homepage; ?>
これでfile_get_contents()が何を行なっているかわかりました。問題は’php://input’の部分です。引数にしているこの部分は何を表しているのでしょうか。 PHPドキュメントを確認すると以下のように書かれています。
php://input は読み込み専用のストリームで、 リクエストの body 部から生のデータを読み込むことができます。
すなわち、php://input は、POSTの生データの読み込みを許可するということみたいです。
以上より、file_get_contents( ‘php://input’ );はPOSTの生データを読み込むということを意味しているみたいです。