Довольно часто встречающийся вопрос – как средствами php отправить POST запрос (и обработать ответ). И традиционные ответы на этот вопрос:
- curl (самый очевидный ответ, к сожалению не везде доступный)
- fsockopen (самый распространённый способ)
- http (extension появился сравнительно недавно и советуют его нечасто)
Спешу поделиться другим способом:
$postfields = http_build_query( array ('var1' => 'value 1', 'var2' => 'value 2',));
$opts = array('http' =>
array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => $postfields,
)
);
$context = stream_context_create($opts);
$result = file_get_contents('http://example.com/action.php', false, $context);
Как видно – не нужны никакие дополнительные extension-ы и в отличии от способа с fsockopen большую часть “грязной” работы возьмёт на себя stream_context_create.
Подсмотрено вон там.
P.S.
Название поста глупое, но другого в голову не идёт. ;o)
file_post_contents

Очень удобно когда не хочется париться с сокетами.
Возьмем на заметку:)
Действительно удобно.
Надо будет, наверное, прикрутить к своему компоненту Browser
http://php.southpark.com.ua/2007/10/14/browser-komponent-dlya-cakephp/
Биг сенкс оч время с экономил