Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá, iMasters.
Estou a procura de um codigo que faça gerar um arquivo .TXT de um while em php para DOWNLOAD..
Tenho uma página onde lista NOME e EMAIL de pessoas que "querem receber novidades" do site que estao salvos em uma tabela do mysql.
Eu gostaria apenas de gerar um arquivo txt contendo todos nomes e emails, cada valor em uma linha.
exemplo:
nome1, email1
nome2, email2
nome3, email3
nome4, email4
.....ate acabar
E quando clicar em DOWNLOAD, aparece ja a janelinha pra salvar o arquivo no pc, com um nome qualquer .txt
Como fazer? Valeu!
E no final do que o Leonardo postou coloque isto aqui:
header('Content-type: text/plain');
header('Content-Disposition: attachment; filename="nomedoarquivo.txt"');
readfile('nomedoarquivo.txt');valeu amigos, por enquanto tá no caminho certo..
só estou com 1 problema.. tenho uma pagina que clico em "download" e abre o txt, beleza. mas CADA VEZ QUE ACESSO A PAGINA onde contém o codigo que o Leonardo postou, é gerado um novo looping no arquivo.txt com os mesmo dados, da seguinte forma:
1ª vez que abro a pagina, o txt é atualizado:
nome1, email1
nome2, email2
nome3, email3
nome4, email4
2ª vez que abro a pagina, o txt é atualizado:
nome1, email1
nome2, email2
nome3, email3
nome4, email4
nome1, email1
nome2, email2
nome3, email3
nome4, email4
3ª vez que abro a pagina, o txt é atualizado:
nome1, email1
nome2, email2
nome3, email3
nome4, email4
nome1, email1
nome2, email2
nome3, email3
nome4, email4
nome1, email1
nome2, email2
nome3, email3
nome4, email4
Ou seja, ele fica repetindo os mesmo valores e INCLUINDO.. Sendo que deveria mostrar apenas os cadastrados no banco, incluindo apenas os que sao novos..
Como resolver?
Tive a ideia de fazer uma limpa no txt a cada vez que o codigo é lido e apos a limpa e salva-lo, automaticamente ele gera os dados e salva novamente. Seria uma boa ideia? Se sim, como devo fazer? tentei aqui mas sem sucesso
Obrigado ate agora!
@edit ------------
Opa, consegui um jeito aqui.
<?php $querymail = mysql_query("select nome,email from mailing");
fopen("mailing.txt", "w+");
while($data = mysql_fetch_array($querymail)) {
$log = "$data[nome], $data[email] \n";
if (!$savelog = fopen('mailing.txt', "a"))
{ exit; }
if (!fwrite($savelog, $log))
{ exit; fclose($savelog); }
}
?>
<a href="mailing.txt">Download</a>
Está funcionando do jeito que citei, resetando e gerando os dados novamente.
Alguma objeção ai? alguem tem algo melhor?
Obrigado aos que ajudaram! Verei o topico, caso tenha novas respostas.
Tente assim:
$query111 = mysql_query("select nome,mail from tabela");
while($data = mysql_fetch_array($query111)) {
$log = "$data[nome] ,$data[mail] \n";
if (!$savelog = fopen('nomedoarquivo.txt', "a")) {exit;}
if (!fwrite($savelog, $log)) {exit;}fclose($savelog); }}[b][/b]
}
+/- isso, criei correndo, espero que ajude