LoginSignup
6
4

【PHP】Postリクエストを受取り、Bodyの内容を取得する

Last updated at Posted at 2024-03-27

はじめに

最近PHPをはじめました。
HTTPのPostリクエストを受取り、Bodyの内容を取得する方法が分からず調べてみました。

結論

下記コードで実現できました!

Version
PHP:5.5.3
Cake:2.5.8

    // POSTリクエスト以外はエラー
    if (!$this->request->is('post')) {
        echo json_encode(["is_success" => false, "error" => "POSTリクエスト不使用"]);
        return;
    }

    // リクエストボディの内容を取得
    $json = file_get_contents('php://input');
    $data = json_decode($json, true);

    // リクエストボディからuserIDを取得
    $user_id = $data['user_id'];

詳細

ChatGPTに聞きながら詳細をまとめました。

1. POSTリクエストのチェック
最初のブロックは、受け取ったリクエストがPOSTメソッドであるかを確認しています。Bodyの内容を取得するのに必須ではないですがPostリクエストであることを条件としています。

2. リクエストボディの取得
file_get_contents('php://input')を使ってリクエストボディの内容を取得します。php://inputは、リクエストのボディ部分にアクセスするためのPHPのラッパーで、生のPOSTデータを読み込むために使われているそうです。
取得したJSON形式のデータはjson_decode()関数によってPHPの配列に変換されます。json_decodeの第二引数にtrueを指定することで、結果が連想配列として返されます。

// 連想配列の例(キーを指定してセットする)
$array = array('apple'=>'りんご', 'peach'=>'もも', 'pear'=>'なし');

3. userIDの取得
最後に、連想配列として解析されたデータからuser_idキーに対応する値を取得しています。この値は変数$user_idに代入します。

まとめ

PHP初心者ですがHTTP通信の理解が深まったり、動的型付けがどういうものなのかが見えてきて面白いです!

最後に

私の働いている会社で経験の有無を問わず採用を行っています。
興味のある方は是非カジュアル面談から応募してみてください!

6
4
8

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4