phpでライブラリを使わずにhttpリクエストのbodyを取得する方法
先日、業務中に少しテンパったので、メモ。
とあるサービスのAPIを利用する際、
コールバックのhttpリクエストのbodyの内容でごにょごにょする必要がありました。
その際、http_get_request_body()関数を使って、値を取得していました。
PHP: http_get_request_body - Manual
問題なく、動いていたので本番環境にリリース。
が、本番環境で動かない・・・
エラーログを確認すると、
http_get_request_body関数なんか知らないよ!
的な内容。
ファッ!?
よくよく調べるとhttp_get_request_body()関数は
peclなどでhttpモジュールを追加しなければいけないようです。
でなぜか開発にはhttpモジュールあって、本番環境にはない!
てっきり標準関数かと思ってた・・・
PHP: HTTP 拡張モジュールのインストール - Manual
なので、httpモジュール入れようとしたら、
なんかもろもろのバージョン依存で簡単に入れれないことが判明し、
代替えの関数を使って処理する方向に。
$_GET,$_POSTとかのノリでさくっと取れるかと思ったら、なかなか見つからない><
結論からすると下記で値取れました!
$body = file_get_contents('php://input');
ドキュメントはこちら
PHP: php:// - Manual
こんなんあったのか・・・
感謝致します。