Довольно часто встречающийся вопрос – как средствами php отправить POST запрос (и обработать ответ). И традиционные ответы на этот вопрос:

  1. curl (самый очевидный ответ, к сожалению не везде доступный)
  2. fsockopen (самый распространённый способ)
  3. 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)

Technorati Tags: ,

file_post_contents
Tagged on:

3 thoughts on “file_post_contents

Leave a Reply