Criando arquivos HTML com PHP
Hoje irei mostrar uma forma simples como criar um arquivo HTML usando nosso mostro PHP e também apos a sua criação iramos forçar o seu download.
Lembrando que também podemos gerar um HTML dinâmico, mas não é o foco deste exemplo.
Vamos lá então:
1º Passo - Atriubuimos todo o nosso HTML a uma variavel
1 2 3 4 5 6 | $body="<body> <table border='0'> <tr><td>onnClick - Desenvolvendo Ideias</td></tr> </table> </body>"; |
2º Geramos nosso arquivo HTML
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?php $nome= mktime().mt_rand(1,100).'.html'; //Criamos um nome randomico para o Arquivo $fp = fopen($nome,'w'); if(fputs($fp,$body,strlen($body))){ //Escreve no Arquivo echo 'Arquivo gerado com sucesso.'; }else{ echo 'ERRO'; } //Redirecionamos para o arquivo download.php afim de forçar o download header("Location: download.php?arquivo=".$nome.""); ?> |
3º - Forçamos o download do arquivo
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | <?php $file = $_REQUEST['arquivo']; //Pego o nome do arquivo $ext = explode('.', $file); if(($ext[1] == "html") || ($ext[1] == "HTML")) { //valida a extenção header("Content-Type: application/save"); header("Content-Length:".filesize($file)); header('Content-Disposition: attachment; filename="' . $file . '"'); header("Content-Transfer-Encoding: binary"); header('Expires: 0'); header('Pragma: no-cache'); // nesse momento ele le o arquivo e envia $fp = fopen('$file', 'r'); fpassthru($fp); fclose($fp); sleep(10); unlink($file); //Apagamos o arquivo no servidor } else { die("Erro: Extensão não permitida."); } ?> |
Bem acredito que era apenas isso. Qualquer duvida entrem em contato, até a proxima !
2 Responses to “Criando arquivos HTML com PHP”
Seu Comentário


Gilberto on novembro 18th, 2009
Parabens pelo artigo. Forma muito simples de gerar arquivos html de forma dinâmica. Ja estava a procurar por algo do genero a um bom tempo. Me ajudou bastante.
Carlos on agosto 25th, 2010
IncrÃvel… passei por vários scripts q não funcionaram…
Esse funciona perfeitamente… Mas apenas uma dica, pessoal. Caso o servidor seja linux, certifiquem-se de que a pasta de destino tenha permissão de escrita…