One way is to make use of the functions stream_context_create() and http_build_query() that will allow us to create a flow context and generate an HTML query. Then just apply all these as function parameters file_get_contents()
:
Function
/**
* 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);
}
Utilizing
<?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');
?>
This way, we are reading the result of the file ficheiro.php
as if a POST
at the same.