Comment passez-vous des $_POST
valeurs à une page en utilisant cURL
?
Cela devrait fonctionner correctement.
$data = array('name' => 'Ross', 'php_master' => true);
// You can POST a file by prefixing with an @ (for <input type="file"> fields)
$data['file'] = '@/home/user/world.jpg';
$handle = curl_init($url);
curl_setopt($handle, CURLOPT_POST, true);
curl_setopt($handle, CURLOPT_POSTFIELDS, $data);
curl_exec($handle);
curl_close($handle)
Nous avons deux options ici, CURLOPT_POST
qui active HTTP POST et CURLOPT_POSTFIELDS
qui contient un tableau de nos données de publication à soumettre. Cela peut être utilisé pour soumettre des données à l' POST
<form>
art.
Il est important de noter que curl_setopt($handle, CURLOPT_POSTFIELDS, $data);
prend les données $ dans deux formats, et que cela détermine comment les données de publication seront encodées.
$data
en tant que array()
: Les données seront envoyées comme multipart/form-data
ce qui n'est pas toujours accepté par le serveur.
$data = array('name' => 'Ross', 'php_master' => true);
curl_setopt($handle, CURLOPT_POSTFIELDS, $data);
$data
as url encoded string: Les données seront envoyées en tant que application/x-www-form-urlencoded
, qui est l'encodage par défaut pour les données de formulaire HTML soumises.
$data = array('name' => 'Ross', 'php_master' => true);
curl_setopt($handle, CURLOPT_POSTFIELDS, http_build_query($data));
J'espère que cela aidera les autres à gagner du temps.
Voir:
Ross a la bonne idée pour POSTER le format de paramètre / valeur habituel dans une URL.
Je suis récemment tombé sur une situation où je devais POSTER du XML en tant que Content-Type «text / xml» sans aucune paire de paramètres, alors voici comment procéder:
Dans mon cas, j'avais besoin d'analyser certaines valeurs de l'en-tête de réponse HTTP afin que vous n'ayez pas nécessairement besoin de définir
CURLOPT_RETURNTRANSFER
ouCURLOPT_HEADER
.la source
la source
Un autre exemple PHP simple d'utilisation de cURL:
Exemple trouvé ici: http://devzone.co.in/post-data-using-curl-in-php-a-simple-example/
Au lieu d'utiliser,
curl_setopt
vous pouvez utilisercurl_setopt_array
.http://php.net/manual/en/function.curl-setopt-array.php
la source
curl_setopt($ch, CURLOPT_POSTFIELDS, "var1=value1&var2=value2&var_n=value_n"); // Define what you want to post
m'a fourni ce que je cherchais :)Consultez cette page qui a un exemple de la façon de le faire.
la source
Consultez la page de documentation PHP cUrl . Cela aidera bien plus que de simples exemples de scripts.
la source
la source
la source