¿Cómo se pasan $_POST
valores a una página usando cURL
?
Debería funcionar bien.
$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)
Tenemos dos opciones aquí, CURLOPT_POST
que activa HTTP POST y CURLOPT_POSTFIELDS
que contiene una matriz de nuestros datos de publicación para enviar. Esto se puede utilizar para enviar datos a POST
<form>
s.
Es importante tener en cuenta que curl_setopt($handle, CURLOPT_POSTFIELDS, $data);
toma los $ data en dos formatos y que esto determina cómo se codificarán los datos de la publicación.
$data
como un array()
: Los datos se enviarán como lo multipart/form-data
que no siempre es aceptado por el servidor.
$data = array('name' => 'Ross', 'php_master' => true);
curl_setopt($handle, CURLOPT_POSTFIELDS, $data);
$data
como cadena codificada en URL: los datos se enviarán como application/x-www-form-urlencoded
, que es la codificación predeterminada para los datos del formulario html enviado.
$data = array('name' => 'Ross', 'php_master' => true);
curl_setopt($handle, CURLOPT_POSTFIELDS, http_build_query($data));
Espero que esto ayude a otros a ahorrar tiempo.
Ver:
Ross tiene la idea correcta para POSTAR el formato habitual de parámetro / valor en una URL.
Recientemente me encontré con una situación en la que necesitaba PUBLICAR algo de XML como Content-Type "text / xml" sin ningún par de parámetros, así que así es como se hace:
En mi caso, necesitaba analizar algunos valores del encabezado de respuesta HTTP, por lo que es posible que no necesite establecer
CURLOPT_RETURNTRANSFER
oCURLOPT_HEADER
.fuente
fuente
Otro ejemplo simple de PHP sobre el uso de cURL:
Ejemplo encontrado aquí: http://devzone.co.in/post-data-using-curl-in-php-a-simple-example/
En lugar de usar
curl_setopt
, puede usarcurl_setopt_array
.http://php.net/manual/en/function.curl-setopt-array.php
fuente
curl_setopt($ch, CURLOPT_POSTFIELDS, "var1=value1&var2=value2&var_n=value_n"); // Define what you want to post
me proporcionó lo que estaba buscando :)Consulte esta página que tiene un ejemplo de cómo hacerlo.
fuente
Consulte la página de documentación de PHP cUrl . Ayudará mucho más que solo con scripts de ejemplo.
fuente
fuente
fuente