Pessoal é o seguinte, eu criei um sistema que envia emails, porem ele só aceita html, por conta do tipo de formação do aquivo e algumas variaveis, meu problema é o seguinte quando eu abro a página ela fica perfeita, eu precisa salvar o código fonte dele, sabe igual quando salvamos pelo internet explorer, igual, porque fica um html leve e do jeito que aparece na tela, se alguem solber de algo eu agraço muito.
Php salvar fonte da própria página
3 Respostas
Bem, tem uma maneira de fazer isso, Rockfido, capturando o buffer onde o php 'escreve' as coisas...
Da uma olhada na função ob_start [url]http://php.net/manual/pt_BR/function.ob-start.php[/url]
Resumidamente, você pode fazer algo assim:
// Inicializa o buffer e bloqueia qualquer saída para o navegador
ob_start();
// Executamos o phpinfo() normalmente
phpinfo();
// Neste momento nenhuma saída foi enviada ao navegador
// Recebemos o valor do buffer na variável $resultado
$resultado = ob_get_contents();
// Já podemos encerrar o buffer e limpar tudo que há nele
ob_end_clean();
// Agora é só gravar um arquivo com os dados coletados
$ok = file_put_contents('phpinfo.html', $resultado);
// Envia uma mensagem para o usuário indicando se ocorreu tudo OK
if ($ok) {
print 'Arquivo gravado com sucesso.';
print 'Clique aqui para visualizar';
} else {
print 'Ocorreu um erro. Verifique o permissionamento.';
}
Referência: [url]http://www.mxstudio.com.br/desenvolvimento/php/entendendo-pra-que-serve-ob-start-ob-end-flush-ob-get-contents-e-afins/[/url]
quer dizer que se eu pegar esse $ok, imprimir tudo que contem nele dentro de um arquivo, e salvar esse arquivo em html ou php, eu vou ter o mesmo resultado visual que na página principal é isso?
desde já, muito obrigado pela resposta.
Isso ai, você pode montar seu e-mail , capturar o resultado:
// Esse pedaço aqui, pega todos os 'echo's depois do 'ob_start()'
$resultado = ob_get_contents();
Ai você salva o $resultado em um arquivo, no banco, ou em qualquer lugar pra você ver o resultado do seu e-mail
e da um
echo $resultado; // Imprimindo tudo o que foi capiturado antes.
Pra imprimir tudo que foi gerado antes.
Qualquer coisa mandae, um abraço.