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&atilde;o n&atilde;o permitida.");
}
?>

Bem acredito que era apenas isso. Qualquer duvida entrem em contato, até a proxima !

2 Responses to “Criando arquivos HTML com PHP”

  1. 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.

  2. 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…


Seu Comentário