One way is to use the stream_context_create () and link that will allow us to create a flow context and generate an HTML query. Then just apply all this as parameters of the file_get_contents()
function:
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);
}
Use
<?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');
?>
In this way, we are reading the result of the file ficheiro.php
as if a POST
had been done to it.