Enviar datos por POST mediante CURL

Si el otro día indicábamos cómo obtener una página protegida por autenticación, hoy vamos a explicar lo fácil que es enviar una petición HTTP con datos por POST usando CURL.

Tan solo es necesario indicar que se envían datos por POST e indicar qué datos se van a mandar:

<?php
$ch = curl_init('http://dominio.com/pagina.php');
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, "parametro1=valor1¶metro2=valor2");
curl_exec ($ch);
curl_close ($ch);
?>

Con CURLOPT_POST indicamos que enviamos datos en POST y con CURLOPT_POSTFIELDS indicamos los datos.

Obtener una página con autenticación en PHP

Algo que normalmente es interesante hacer y que nos da muchos problemas es leer una página web desde un script PHP y que la página tenga autenticación.

La solución es sencilla, pero es necesario el uso de CURL:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERPWD, 'usuario:password'));
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10); // timeout 10 segs
$data = curl_exec($ch);

Vía / [no recuerdo de dónde lo copié]