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";
?>
http_post_fields
(PECL pecl_http >= 0.10.0)
http_post_fields — Perform POST request with data to be encoded
Beschreibung
string http_post_fields
( string
$url
, array $data
[, array $files
[, array $options
[, array &$info
]]] )Performs an HTTP POST request on the supplied url.
Siehe auch die vollständige Liste der Request-Optionen.
Parameter-Liste
-
url -
URL
-
data -
Associative array of POST values
-
files -
Array of files to post
-
options -
info
Rückgabewerte
Gibt die HTTP-Antwort(en) als String zurück oder FALSE bei Fehlern.
Beispiele
Beispiel #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);
?>
dionmagnus at yandex dot ru ¶
3 years ago
ya at kirilloid dot ru ¶
5 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
wormholio at gmail dot com ¶
5 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";
?>
thomasxholder at compuserve dot de ¶
6 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);
?>
