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
http_post_fields
(PECL pecl_http:0.10.0-1.5.5)
http_post_fields — Perform 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
- info
Valori restituiti
Restituisce la response HTTP come una stringa in caso di 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);
?>
http_post_fields
ya at kirilloid dot ru
02-Mar-2008 10:59
02-Mar-2008 10:59
wormholio at gmail dot com
28-Jan-2008 10:32
28-Jan-2008 10:32
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";
?>
thomasxholder at compuserve dot de
07-Jan-2007 06:21
07-Jan-2007 06:21
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);
?>
