PHP 5.6.0RC3 is available

http_post_fields

(PECL pecl_http >= 0.10.0)

http_post_fieldsPerform POST request with data to be encoded

Descrizione

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

Performs an HTTP POST request on the supplied url.

Vedere l'intera lista di opzioni della request.

Elenco dei parametri

url

URL

data

Associative array of POST values

files

Array of files to post

options

opzioni della request

info

informazioni su Request/response

Valori restituiti

Restituisce la response HTTP come una stringa in caso dii successo, oppure FALSE.

Esempi

Example #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);
?>

add a note add a note

User Contributed Notes 4 notes

up
2
wormholio at gmail dot com
6 years ago
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";

?>
up
0
dionmagnus at yandex dot ru
4 years ago
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";                               
                               
?>
up
0
thomasxholder at compuserve dot de
7 years ago
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);
?>
up
-1
ya at kirilloid dot ru
6 years ago
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
To Top