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 — Effectue une requête POST avec des données à encoder
Description
string http_post_fields
( string $url
[, array $data
[, array $files
[, array $options
[, array &$info
]]]] )
Effectue une requête HTTP POST sur l'URL fournie.
Voir la liste complète des options de demande.
Liste de paramètres
- url
-
URL
- data
-
tableau associatif de valeurs POST
- files
-
tableau de fichiers à envoyer par méthode POST
- options
- info
Valeurs de retour
Retourne la(les) réponse(s) HTTP sous la forme d'une chaîne de caractères en cas de succès, ou FALSE si une erreur survient.
Exemples
Exemple #1 Exemple avec http_post_fields()
<?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 04:59
02-Mar-2008 04:59
wormholio at gmail dot com
29-Jan-2008 04:32
29-Jan-2008 04: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 12:21
07-Jan-2007 12: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);
?>
