Hace poco escribú un artículo sobre la diferentecia de usar file_get_contents y curl en php. Y comenté que con la función file_get_contents se podían enviar datos usando el método POST pero que había que realizar un contexto de php.
En este artículo os voy a poner un ejemplo sencillo para que se pueda ver. Aunque yo creo que es mejor y más elegante usar curl para hacer este tipo de cosas. Ya sea mandar información por POST o GET.
$postdata = http_build_query(
array(
'var1' => 'some content',
'var2' => 'doh'
)
);
$opts = array('http' =>
array(
'method' => 'POST',
'header' => 'Content-Type: application/x-www-form-urlencoded',
'content' => $postdata
)
);
$context = stream_context_create($opts);
$result = file_get_contents('http://url-que-recibe-el-post.es', false, $context);
Como se puede ver en el ejemplo anterior:
- postdata es un array donde se usa la función http_build_query para generar una cadena de consulta codificada estilo URL
- postdata es un array donde se define que se va a usar el método POST para mandar los datos y se define la cabecera de la petición y el contenido que es el array anterior
- conext es el contexto para hacer la llamada POST usando la función file_Get_contents
Espero que os haya servido este ejemplo tan sencillo.