Content-Type application/json で送られてくるデータを生 PHP で取得する場合のメモ
フレームワーク使ってたら、この方法を使うことは無さそうだけど、メモとして…
こんな感じのフロントから送られるデータを扱いたい
const data = { email: 'example@example.com', password: 'password', } await axios.post(API, data, { headers: { 'Content-Type': 'application/json', }, });
Content-Type: application/json
で送られたデータは $_POST
では上手く取得できません。
生PHP で json で送られたデータを取得するには file_get_contents('php://input')
を使う
file_get_contents('php://input')
で JSON データを取得してjson_decode
で連想配列形式にして送られたデータを取得する
<?php $json = file_get_contents('php://input'); $params = json_decode($json, true); $email = $params['email']; // => "example@example.com" $password = $params['password']; // => "password"
₍ ᐢ. ̫ .ᐢ ₎👌
おわり
[参考]
Laravel: Up & Running: A Framework for Building Modern PHP Apps
- 作者:Stauffer, Matt
- 発売日: 2019/04/23
- メディア: ペーパーバック
- 作者:掌田津耶乃
- 発売日: 2017/09/16
- メディア: 単行本