
Para fazer uma requisição POST com retorno em HTML no PHP, iremos utilizar a função nativa “file_get_contents”.
A função “file_get_contents” é semelhante a função “file”, a diferença é que ela retorna uma String utilizando o “offset” e o “maxlen”, para leitura.
Em caso de erro, ela irá retornar o valor boolean “false”.
Estou utilizando a versão do PHP 7.1 para testar esse código.
Aconselho a testar em versões acima da 5.6.
$url_de_destino = ""http://destino.com.br/salvar_test.php";
URL de destino para aonde será feita a requisição.
$postdata = http_build_query(
array(
'var1' => 'valor_var_1'
'var2' => 'valor_var_2'
)
); Os parâmetros que serão enviados via POST, adicione a quantidade que for necessária.
$options = array('http' =>
array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => $postdata
)
); Esses são os parâmetros necessários para que a requisição seja enviada via post.
$context = stream_context_create($options); $result = file_get_contents($url_de_destino, false, $context);
Na primeira linha, criamos um contexto com nossas configurações e depois chamamos o “file_get_contents”.
A função “stream_context_create” utilizamos para criar um “fluxo de contexto”, conjuntos de parâmetros referentes a uma requisição.
O retorno em HTML está na variável “result”.
$url_de_destino = ""http://destino.com.br/salvar_test.php";
$postdata = http_build_query(
array(
'var1' => 'valor_var_1'
'var2' => valor_var_2'
)
);
$options = array('http' =>
array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => $postdata
)
);
$context = stream_context_create($options);
$result = file_get_contents($url_de_destino, false, $context); Crie uma estrutura de “try / catch” na função “file_get_contents” para tratar possíveis falhas com a URL de Destino.
Problemas e observações:
Caso esse código não esteja funcionando em sua hospedagem, você pode utilizar o cURL para fazer essa operação.
Fazendo uma requisição Post utilizando Curl no PHP
Negar /.env no nginx parece resolvido até alguém pedir /wp-content/uploads/.env ou backup.sql. As regras que testei e os furos que…
O Search Console marca suas páginas 2, 3 e 4 como alternativas da página 1? Ajuste a tag canônica do…
Um módulo de terceiro plantou um banner no topo da loja e você não quer desinstalar nada: tire o bloco…
Importou o banco de produção e o site pula para o domínio antigo? Rode o UPDATE em core_config_data, limpe o…
Seu catch trata pedido inexistente e banco fora do ar do mesmo jeito. Veja como criar exceção customizada em PHP…
O form do admin salva mas abre em branco na edição: veja o getData() indexado pelo id da entidade e…