A 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 😉
Amigo, em meu teste o ‘print $result;’ imprimiu o código da pagina teste.php e nao fez post algum.. qual pode ser o problema?
O local onde a página teste.php está hospedada está com suporte ao PHP ativado?
Muito Obrigado.. Estava realmente precisando dessa alternativa.. Nao estava conseguindo.
o que é suporte php ativado? … pois o meu tbm não fez o post