PHPで標準出力をPOSTする方法

アプリとWEBの通信する時、なるべく通信料を減らしたいので、アプリから送信される生データのPOSTをWEB側のPHPで受け取り、標準入力として処理するという要件があった。

アプリをその都度実行してデバッグするのは大変なので、WEB側で同じ事ができるような機能がほしいねということになり、PHPで標準出力をPOSTする必要がでてきた。

file_get_contents()でPOSTができるけど、標準出力のやり方はよくわからずいで検索したけどHITしなかったので、できる方法を模索してみました。とは言ってもfile_get_contents()のPOSTをちょっと変えただけです。

$data = "POSTしたいもの";
 
$header = array(
  "Content-Type: application/x-www-form-urlencoded",
  "Content-Length: " . strlen($data)
);
 
$context = array(
  "http" => array(
    "method" => "POST",
    "header" => implode("\r\n", $header),
    "content" => $data,
  )
);
 
$url = "http://example.com";
$contents = file_get_contents($url, false, stream_context_create($context));

受ける方はこれです。

$input = file_get_contents('php://input');

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です