強火で進め

このブログではプログラム関連の記事を中心に書いてます。

PHP プログラムに向けて値(データ)だけの POST (Raw Post)が行われた時のデータの取得方法

POST メソッドってを 名前=値(データ) という、例えば test=123 みたいなクエリ文字列(Query string)じゃないとダメだと思っていたのですが 123 という様にデータだけを含んだものも実はOKという事を最近知りました。

例えは curl を使った場合は以下の様なな記述で「データだけの POST 」を行う事が出来ます。

curl -d 'test hoge fuga 1234' http://example.com/index.php

この様なデータが送られた場合にちゃんとサーバにデータが届いているか PHP のプログラムで検証したいと思ったのですが $_POST にはデータが入っていませんでした。

調査した所、以下の方法で取得可能でした。

<?php $postdata = file_get_contents("php://input"); ?> 

PHP: $HTTP_RAW_POST_DATA - Manual
http://php.net/manual/en/reserved.variables.httprawpostdata.php