Como ler o resultado de um ficheiro para uma variável passando parâmetros POST?

11/01/2016

0

PHP

Boa tarde,

É possível retornar o resultado da execução de uma URL pra uma var fazendo uso de uma função file_get_contents():

<?php
$pagina = file_get_contents('http://www.meusite.com/');
echo $pagina;
?>


É possível estender esta funcionalidade, passando parâmetros do tipo POST na requisição?


Valew!
Joaci Gomes

Joaci Gomes

Responder

Posts

11/01/2016

Nilton Braz

Uma maneira é fazer uso das funções stream_context_create() e http_build_query() que nos vão permitir criar um contexto de fluxo e gerar uma consulta de HTML. Depois basta aplicar tudo isso como parâmetros da função file_get_contents():

Função
/**
* Get File Stream Data
*
* Executa um POST ao ficheiro indicado devolvendo o
* output gerado pelo mesmo.
*
* @param string $postdata Parametros para enviar como POST ao ficheiro
* @param string $filepath Caminho de URL completo para o ficheiro
*
* @return string Resultado do POST ao ficheiro indicado
*/
function getFileStreamData ($postdata, $filepath) {

// preparar a matriz de opções
$opts = array('http' =>
array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded' . "\r\n",
'content' => $postdata
)
);

// criar o contexto de fluxo
$context = stream_context_create($opts);

// devolver os resultados do ficheiro com a realização de um POST
return file_get_contents($filepath, false, $context);
}
Utilização
<?php

// criar a consulta a enviar para a página
$postdata = http_build_query(
array(
"parametro1" => 'john',
"parametro2" => 'doe',
"parametro3" => 'bananas'
)
);

// recolher a página enviando os parâmetros de consulta
$result = getFileStreamData ($postdata, 'http://www.site.pt/caminho/para/ficheiro.php');

?>
Desta forma, estamos a ler o resultado do ficheiro ficheiro.php como se tivesse sido realizado um POST ao mesmo.
Responder

12/01/2016

Joaci Gomes

Obrigado pela atenção e desculpa na demora do feedback Nilton Felipe Braz!



Deu certo!
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar