PHPUnitのテストなどで、手っ取り早くPOSTする時の関数。PHPの公式ページのサンプルなどを参考にしました。
PHP: file_get_contents - Manual
<? /** * @param string $url 送信先のURL * @param array $sendarray 送信する連想配列 * * @return array response=戻ってきたページの情報 / http_response_header=レスポンスヘッダ */ function postUrl($url, $sendarray) { $data_url = http_build_query($sendarray); $data_len = strlen($data_url); $res = file_get_contents( $url, false, stream_context_create(array( 'http' => array( 'method' => 'POST', 'header' => "Content-Type: application/x-www-form-urlencoded\r\nContent-Length: $data_len\r\n", 'content' => $data_url, ), )) ); return array( 'response' => $res, 'http_response_header' => $http_response_header, ); } // 利用サンプル // 送信先に、$_POST['data1']に'test1'、$_POST['data2']に'test2'を渡す // 戻り値のレスポンスヘッダーの1行目と本文を表示 $send = array( 'data1'=>'test1', 'data2'=>'test2' ); $res = postUrl("http://www.example.com", $send); echo "code = ".$res['http_response_header'][0]."\n"; echo "resp = ".$res['response']."\n";