чудо{вищные} заметки

Sorry for my terrible english. My native language is PHP.

file_post_contents

Довольно часто встречающийся вопрос — как средствами 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: ,

17 сентября, 2007 - Posted by | dev, php

2 комментария »

  1. Очень удобно когда не хочется париться с сокетами.
    Возьмем на заметку:)

    комментарий от Vadim | 17 октября, 2007

  2. Действительно удобно.
    Надо будет, наверное, прикрутить к своему компоненту Browser
    http://php.southpark.com.ua/2007/10/14/browser-komponent-dlya-cakephp/

    комментарий от Владимир Лучанинов | 19 октября, 2007


Оставьте комментарий