http_post_fields

(PECL pecl_http >= 0.10.0)

http_post_fieldsPerform POST request with data to be encoded

Описание

string http_post_fields ( string $url , array $data [, array $files [, array $options [, array &$info ]]] )

Performs an HTTP POST request on the supplied url.

Смотрите полный список опции запроса.

Список параметров

url

URL

data

Associative array of POST values

files

Array of files to post

options

опции запроса

info

Информация о запросе/ответе

Возвращаемые значения

Возвращает строку с HTTP-ответом(ами) при успешном завершении работы, или FALSE при ошибке.

Примеры

Пример #1 A http_post_fields() example

<?php
$fields 
= array(
    
'name' => 'mike',
    
'pass' => 'se_ret'
);
$files = array(
    array(
        
'name' => 'uimg',
        
'type' => 'image/jpeg',
        
'file' => './profile.jpg',
    )
);

$response http_post_fields("http://www.example.com/"$fields$files);
?>

Коментарии

It was hard to figure out how to actually post files with this function. The "Array of files to post" is an array of associative arrays, each need the keys "name", "type" and "file". Consider this example code:

<?php
$files 
= array(
    array(
       
'name' => 'somename',
       
'type' => 'text/plain',
       
'file' => $filename
   
)
);
$http_response http_post_fields($url$data$files);
?>
2007-01-07 05:21:16
http://php5.kiev.ua/manual/ru/function.http-post-fields.html
To use POST to submit a form to a site which requires a cookie for authentication you put the cookie in the $options array.  Example:

<?php

$auth
="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";

$form_url="http://pirates.spy-hill.net/forum_reply.php?thread=663";

$message  "RoboCodeDwarf now has the gold. \n\n";
$message .= "RoboCodeDwarf sez: [quote] " . `fortune -s` . "[/quote]\n";

$form_fields = array(
                     
'content' => $message,
                     
'add_signature' => 'add_it',
                     
'submit' => 'Post reply'  );
$form_files=array();
$form_options=array( 'cookies' => array( 'auth' => $auth ) );

$response http_post_fields($form_url$form_fields$form_files$form_options );

$n preg_match("/HTTP\/1.1 302 Found/"$response$matches);
if(
$n<1) echo "FAILED\n";
 else    echo 
"POSTED\n";

?>
2008-01-28 21:32:05
http://php5.kiev.ua/manual/ru/function.http-post-fields.html
comment to wormholio's answer:
if you use regular expression, then use it fully:
"/HTTP\/\d\.\d 302 Found/"
Some servers still can use HTTP 1.0
2008-03-02 09:59:58
http://php5.kiev.ua/manual/ru/function.http-post-fields.html
Hear is an axmaple how to arrays as POST varibles:
<?php
 
  $response 
http_post_fields('http://example.com/page.php',
                                array(
'val[0]'=>'val1''val[1]'=>'val2'));
 
                               
  echo 
"\$response: $response\n";                               
                               
?>
2010-02-19 06:11:24
http://php5.kiev.ua/manual/ru/function.http-post-fields.html

    Поддержать сайт на родительском проекте КГБ