Enviando dados via POST com file_get_contents() em PHP
21 Nov 2013A função file_get_contents() é utilizada para obter dados de arquivos e URLs. Através dela, também é possível enviar dados via POST para uma página web e então receber o resultado desta página.
Para isto, basta utilizar o terceiro parâmetro da função. O terceiro parâmetro deve ser um stream de contexto que pode ser criado através da função stream_context_create().
Primeiro, vamos criar a query HTTP que será enviada por POST:
$dados = http_build_query(array('firstname' => 'John', 'lastname' => 'Doe'));
Em seguida, vamos criar o stream de contexto que será passado como parâmetro para a função file_get_contents():
$contexto = stream_context_create(array(
'http' => array(
'method' => 'POST',
'content' => $dados,
'header' => "Content-type: application/x-www-form-urlencoded\r\n"
. "Content-Length: " . strlen($dados) . "\r\n",
)
));
Após isto, basta chamar a função e obter a resposta:
$resposta = file_get_contents('http://url_de_teste/teste.php', null, $contexto);
Um exemplo completo pode ser baixado AQUI.
Até a próxima 😉