爬虫類嫌いのPython日記

爬虫類が大の苦手の筆者が、Pythonに挑戦。他にも、RubyやObjective-C、Google Appengine、Herokuなど色々とチャレンジしています。

PHPでPOSTされたJSONデータを受信する

スマートフォンなどから認証のためにIDやパスワードをJSONデータとしてPOST送信した場合、サーバサイドをPHPで実装してハマったのでメモです。

PHPの場合、HTMLのフォームからPOSTされた場合は、$_POSTを使用してデータを取得するのですが、スマートフォンなどからJSONデータをPOSTした場合、$_POSTでは取得できません。
そこで、リクエストのbody部から生のデータを読み込む事にしました。

$handle    = fopen('php://input','r');
$jsonInput = fgets($handle);
$json      = json_decode($jsonInput);

php://inputを利用するのに気が付かなくて、ちょっと悩みました。