SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

【php】file_get_contents()でPOSTリクエストを送る

ソース

<?php
$data = http_build_query(array('foo' => 'bar', 'name' => 'やまだ', 'age' => '123'), '', '&');
$options = array(
	'http'=>array(
		'method' => 'POST',
		'header' => "Content-type: application/x-www-form-urlencoded\r\n"
				. "User-Agent: php.file_get_contents\r\n" // 適当に名乗ったりできます
				. "Content-Length: " . strlen($data) . "\r\n",
				'content' => $data
	)
);
$context = stream_context_create($options);
$response = file_get_contents('http://127.0.0.1/test.php', false, $context);

解説

GETでHTTPリクエストを送る場合とさほど変わりはないです。

file_get_contens()関数にコンテキスト(”文脈”、”背景”、”状況”などの意味)を指定してリクエストを送信させることができるということです。

http_build_query()関数が使えるのはphp5から。

コンテキストが指定できるのはfopen()関数も同じく。

このように、CURL関数を使わなくても、簡単なPOSTリクエストなら送ることができます。

関連するメモ

コメント(1)

更新Ping(weblogUpdates.ping)をphpで送信する at softelメモ 2010年9月26日 22:37

[…] file_get_contents()関数でPOSTリクエストを送信できるのは以前書いたとおり。 […]