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

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


Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: