[PHP]POSTされたJSONデータを受け取る方法

PHP側でAPIを作成して、JSONデータをPOSTしたときにPOSTしたデータが$_POSTで受け取れなかったのでメモ。

$_POST
公式によると$_POSTで受け取れるのは、「HTTP Content-Type」が下記の場合です。

application/x-www-form-urlencoded
or
multipart/form-data

ということで、application/jsonは$_POSTでは受け取れませんでした。

PHPにPOSTされたJSONをデータとして使用する方法

実際にPOSTされたデータの取り出し方です。

//  get raw data from the request 
$json = file_get_contents('php://input');
// Converts json data into a PHP object 
$data = json_decode($json, true);

参考 Receive JSON POST with PHP

file_get_contents('php://input')を使用することで取得できます。
ajax等でjsonを送信するケースは多いと思うので、自分メモとして残しておきます。

PHPおすすめ書籍

PHPは書籍も多いですが、比較的読みやすそうな奴を紹介します。まぁどれも読み切れば身に付くと思います。
入門用
いきなりはじめるPHP~ワクワク・ドキドキの入門教室
中級用
気づけばプロ並みPHP 改訂版–ゼロから作れる人になる!
PHP8を体系的に学びたい場合
詳細! PHP 8 + MySQL入門ノート XAMPP + MAMP 対応


コメントを残す 0

Your email address will not be published.

2 × three =