アプリと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'); |