Php salvar fonte da própria página

3 respostas
R

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.

3 Respostas

D

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();

//  podemos encerrar o buffer e limpar tudo que  nele
ob_end_clean();

// Agora é  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]

R

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.

D

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.

Criado 7 de outubro de 2011
Ultima resposta 7 de out. de 2011
Respostas 3
Participantes 2