Jump to content


Photo

Problema Ao Exportar Para Txt


  • Faça o login para participar
13 replies to this topic

#1 danilodepolli

danilodepolli

    Doutor

  • Usuários
  • 987 posts
  • Sexo:Não informado

Posted 23/06/2004, 18:39

Galera, tenho um Bd onde mostro letras de musicas, $artista e $nome e $letra ...

Ai fiz esse codigo que seria pra exportar para TXT, mas não ta dando certo.
Queria que ao clicar em exportar ele abrisse e mostrasse na tela um arquivo txt com o nome do arquivo sendo $artista - $nome.txt = Titas - Isso.txt caso fosse esse id escolhido.

O codigo é esse:

<?php
include ("include/conexao.php");
$result = mysql_query("SELECT * FROM letra Where id='$id'");
while ($r = mysql_fetch_array($result)) {
extract($r);

$filename = "$nome.txt";
$somecontent = "$letra";

// Tendo certeza que o arquivo existe e que há permissão de escrita primeiro.
if (is_writable($filename)) {

  // Em nosso exemplo, nós estamos abrindo $filename em modo de append (acréscimo).
  // O ponteiro do arquivo estará no final dele desde
  // que será aqui que $somecontent será escrito com fwrite().
  if (!$handle = fopen($filename, 'w+')) {
        print "Erro abrindo arquivo ($filename)";
        exit;
  }

  // Escrevendo $somecontent para o arquivo aberto.
  if (!fwrite($handle, $somecontent)) {
      print "Erro escrevendo no arquivo ($filename)";
      exit;
  }

  print "Sucesso: escrito ($somecontent) no arquivo ($filename)";


} else {
  print "The file $filename is not writable";
}
}
?>


Danilo Depolli
danilo@camphost.com.br
CAMPHOST - 1º MES GRATIS EM QUALQUER PLANO! HOSPEDAGEM WEB
QUER PATROCINIO FREE? ENTRE EM CONTATO
ICQ: 7695319
MSN: danilodepolli@bol.com.br

#2 kartesus

kartesus

    ich bin der Geist der stets verneint

  • Usuários
  • 210 posts
  • Sexo:Não informado
  • Localidade:Rio Grande do Sul
  • Interesses:PHP e sexo

Posted 24/06/2004, 01:55

tu tem permissão para escrever no diretório?
Ainda com dúvidas? Poste-as aki

#3 danilodepolli

danilodepolli

    Doutor

  • Usuários
  • 987 posts
  • Sexo:Não informado

Posted 24/06/2004, 09:46

Então, o problema é que estou testando em localhost.... winxp... teria que enviar prum servidor pra saber?

Falows
Danilo Depolli
danilo@camphost.com.br
CAMPHOST - 1º MES GRATIS EM QUALQUER PLANO! HOSPEDAGEM WEB
QUER PATROCINIO FREE? ENTRE EM CONTATO
ICQ: 7695319
MSN: danilodepolli@bol.com.br

#4 LeoB

LeoB

    Super Veterano

  • Usuários
  • 1876 posts
  • Sexo:Masculino
  • Interesses:Programação

Posted 24/06/2004, 10:19

Na minha opinião o erro está aqui:

PHP
<?php

// Tendo certeza que o arquivo existe e que há permissão de escrita primeiro.
if (is_writable($filename)) {


?>


Se você quer criar o arquivo, como ele vai existir? Acho que tem que verificar se o arquivo NÃO existe. Minha sugestão:

PHP
<?
include('include/conexao.php');
$result = mysql_query("SELECT * FROM letra WHERE id='$id'");
$r = mysql_fetch_assoc($result);
$arquivo = $r['nome'] . '.txt';
$conteudo = $r['letra'];
if(!
file_exists($arquivo)) {
  if (!$ponteiro = fopen($arquivo, 'w+')) {
    print "Erro abrindo arquivo ($arquivo)";
    exit;
  }
  if(!fwrite($ponteiro, $conteudo)) {
      print "Erro escrevendo no arquivo ($arquivo)";
      exit;
  }
  print "Sucesso: escrito ($conteudo) no arquivo ($arquivo)";
}else
  print "O arquivo $arquivo já existe";
?>


#5 danilodepolli

danilodepolli

    Doutor

  • Usuários
  • 987 posts
  • Sexo:Não informado

Posted 24/06/2004, 10:38

Cara, ta melhorando já, agora ele cria o arquivo normal, mas eu queria assim que quando o cara clicar em VER EM TXT abrisse aquela janela de salvar o arquivo saca? Pq ele ta criando o arquivo no servidor e mostrando no navegador sem a opção de salvar, e era pra salvar no browser de quem ta vendo.

E tipo, o campo $letra eu uso nl2br pra dar os enters, e no txt ta colocando tudo na mesma linha.

Pode me ajudar?
Valeu
Danilo Depolli
danilo@camphost.com.br
CAMPHOST - 1º MES GRATIS EM QUALQUER PLANO! HOSPEDAGEM WEB
QUER PATROCINIO FREE? ENTRE EM CONTATO
ICQ: 7695319
MSN: danilodepolli@bol.com.br

#6 LeoB

LeoB

    Super Veterano

  • Usuários
  • 1876 posts
  • Sexo:Masculino
  • Interesses:Programação

Posted 24/06/2004, 10:57

Se você quer que a pessoa baixe o arquivo, nem precisa salvar no servidor:

PHP
<?
include('include/conexao.php');
$result = mysql_query("SELECT * FROM letra WHERE id='$id'");
$r = mysql_fetch_assoc($result);
$Arquivo = urlencode($r['nome'] . '.txt');
header('Content-type: application/octet-stream');
header('Content-Disposition: attachment; filename=' . $Arquivo);
echo
str_replace('<br>',"\n\r", $r['letra']);
?>


#7 danilodepolli

danilodepolli

    Doutor

  • Usuários
  • 987 posts
  • Sexo:Não informado

Posted 24/06/2004, 11:42

Valeu LeoB..

Ficou perfeito!
Tanks!!
Danilo Depolli
danilo@camphost.com.br
CAMPHOST - 1º MES GRATIS EM QUALQUER PLANO! HOSPEDAGEM WEB
QUER PATROCINIO FREE? ENTRE EM CONTATO
ICQ: 7695319
MSN: danilodepolli@bol.com.br

#8 CrAsh_OveRride

CrAsh_OveRride

    [Morbidamente curioso]

  • Usuários
  • 790 posts
  • Sexo:Masculino
  • Localidade:Viçosa

Posted 28/06/2004, 22:10

Ae galera, e como fazer pra inserir 3 linahs no início do arquivop? (eu to escrevendo é num php mesmo...)

[]'s
←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←
"Não sabendo que era impossível, foi lá e fez!"
←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←

#9 thiagorsl

thiagorsl

    Ex-admin xD

  • Ex-Admins
  • 1151 posts
  • Sexo:Não informado
  • Localidade:Sampa
  • Interesses:http://sermaldito.amovoce.net/

Posted 29/06/2004, 01:41

Ae galera, e como fazer pra inserir 3 linahs no início do arquivop? (eu to escrevendo é num php mesmo...)

[]'s

Usa file que retorna cada linha do arquivo num array :D

PHP
<?php

$linha
=file("arquivo.php");
echo
"Linha 1:".$linha[0]."<br>";
echo
"Linha 2:".$linha[1]."<br>";
echo
"Linha 3:".$linha[2]."<br>";

?>


#10 CrAsh_OveRride

CrAsh_OveRride

    [Morbidamente curioso]

  • Usuários
  • 790 posts
  • Sexo:Masculino
  • Localidade:Viçosa

Posted 29/06/2004, 13:12

Ae galera, e como fazer pra inserir 3 linahs no início do arquivop? (eu to escrevendo é num php mesmo...)

[]'s

Usa file que retorna cada linha do arquivo num array :D

PHP
<?php

$linha
=file("arquivo.php");
echo
"Linha 1:".$linha[0]."<br>";
echo
"Linha 2:".$linha[1]."<br>";
echo
"Linha 3:".$linha[2]."<br>";

?>

Ae Thiago, entendi, pela lógica... entaum eu teria que pegar todas as linahs primeiro, depois incluir as minhas no inicio e salavr tudo denovo... blz :)

mas agora algumas duvidas:

- como obter o total de linhas (preu usar o laço for e pegar tods :) )
- como você me sugere armazenar todas as linhas do arquivo??? será que um array é uma boa ideia?? se o texto for mto grande sera que tem problema?
- e se eu usar um arquivo auxiliar, jogar as linahs pra la, escrever as minhas e pegar do auxiliar denovo? sera q eh bom?

se puder me dar uma ajudinha pra fazer isso ae fico grato :) pesquizei bastante aki no forum, e no php.ner, la so achei os modos do fopen, mas naum fala nada de como inserir no começo ... :/

vlw pela atencao!

[]'s
←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←
"Não sabendo que era impossível, foi lá e fez!"
←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←

#11 thiagorsl

thiagorsl

    Ex-admin xD

  • Ex-Admins
  • 1151 posts
  • Sexo:Não informado
  • Localidade:Sampa
  • Interesses:http://sermaldito.amovoce.net/

Posted 29/06/2004, 13:50

Ae galera, e como fazer pra inserir 3 linahs no início do arquivop? (eu to escrevendo é num php mesmo...)

[]'s

Usa file que retorna cada linha do arquivo num array :D

PHP
<?php

$linha
=file("arquivo.php");
echo
"Linha 1:".$linha[0]."<br>";
echo
"Linha 2:".$linha[1]."<br>";
echo
"Linha 3:".$linha[2]."<br>";

?>

Ae Thiago, entendi, pela lógica... entaum eu teria que pegar todas as linahs primeiro, depois incluir as minhas no inicio e salavr tudo denovo... blz :)

mas agora algumas duvidas:

- como obter o total de linhas (preu usar o laço for e pegar tods :) )
- como você me sugere armazenar todas as linhas do arquivo??? será que um array é uma boa ideia?? se o texto for mto grande sera que tem problema?
- e se eu usar um arquivo auxiliar, jogar as linahs pra la, escrever as minhas e pegar do auxiliar denovo? sera q eh bom?

se puder me dar uma ajudinha pra fazer isso ae fico grato :) pesquizei bastante aki no forum, e no php.ner, la so achei os modos do fopen, mas naum fala nada de como inserir no começo ... :/

vlw pela atencao!

[]'s

- Como obter o total de linhas

Do mesmo jeito que usa com um array usando count()

PHP
<?php

$linhas
=file($arquivo);
for(
$x=0;$x<count($linhas);$x++){
print
$linhas[$x];
}

?>


- Como você me sugere armazenar todas as linhas do arquivo??? será que um array é uma boa ideia?? se o texto for mto grande sera que tem problema?

Vamos pensar um pouco para escrever num arquivo auxiliar você terá que guardar o valor em algum lugar antes certo e depois escrever se você guarda ele num array será bem melhor pois não ira escrever nem ler um arquivo ;)

Eu já coloquei de como fazer isso aqui sem contar que já tem vários mas vou explicar

PHP
<?php


$arquivo
="arquivo.txt";//o arquivo
$linhas=file($arquivo);//pegando os valores do arquivo
$escrever="Coteudo inial";//conteudo que será iniciado no inicio do arquivo
$abertow=fopen($arquivo,w);//abrindo e zerando o arquivo;
fwrite($abertow,$escrever);//escrevendo no inicio do arquivo o texto
$abertoa=fopen($arquivo,a);//abrinco para adicionar no arquivo
for($x=0;$x<count($linhas);$x++){
fwrite($abertoa,$linhas[$x]." \n\r");//escrevendo o arquivo e colocando as quebras de linhas
}

?>


FUI :P

#12 CrAsh_OveRride

CrAsh_OveRride

    [Morbidamente curioso]

  • Usuários
  • 790 posts
  • Sexo:Masculino
  • Localidade:Viçosa

Posted 29/06/2004, 21:41

Ae galera, e como fazer pra inserir 3 linahs no início do arquivop? (eu to escrevendo é num php mesmo...)

[]'s

Usa file que retorna cada linha do arquivo num array :D

PHP
<?php

$linha
=file("arquivo.php");
echo
"Linha 1:".$linha[0]."<br>";
echo
"Linha 2:".$linha[1]."<br>";
echo
"Linha 3:".$linha[2]."<br>";

?>

Ae Thiago, entendi, pela lógica... entaum eu teria que pegar todas as linahs primeiro, depois incluir as minhas no inicio e salavr tudo denovo... blz :)

mas agora algumas duvidas:

- como obter o total de linhas (preu usar o laço for e pegar tods :) )
- como você me sugere armazenar todas as linhas do arquivo??? será que um array é uma boa ideia?? se o texto for mto grande sera que tem problema?
- e se eu usar um arquivo auxiliar, jogar as linahs pra la, escrever as minhas e pegar do auxiliar denovo? sera q eh bom?

se puder me dar uma ajudinha pra fazer isso ae fico grato :) pesquizei bastante aki no forum, e no php.ner, la so achei os modos do fopen, mas naum fala nada de como inserir no começo ... :/

vlw pela atencao!

[]'s

- Como obter o total de linhas

Do mesmo jeito que usa com um array usando count()

PHP
<?php

$linhas
=file($arquivo);
for(
$x=0;$x<count($linhas);$x++){
print
$linhas[$x];
}

?>


- Como você me sugere armazenar todas as linhas do arquivo??? será que um array é uma boa ideia?? se o texto for mto grande sera que tem problema?

Vamos pensar um pouco para escrever num arquivo auxiliar você terá que guardar o valor em algum lugar antes certo e depois escrever se você guarda ele num array será bem melhor pois não ira escrever nem ler um arquivo ;)

Eu já coloquei de como fazer isso aqui sem contar que já tem vários mas vou explicar

PHP
<?php


$arquivo
="arquivo.txt";//o arquivo
$linhas=file($arquivo);//pegando os valores do arquivo
$escrever="Coteudo inial";//conteudo que será iniciado no inicio do arquivo
$abertow=fopen($arquivo,w);//abrindo e zerando o arquivo;
fwrite($abertow,$escrever);//escrevendo no inicio do arquivo o texto
$abertoa=fopen($arquivo,a);//abrinco para adicionar no arquivo
for($x=0;$x<count($linhas);$x++){
fwrite($abertoa,$linhas[$x]." \n\r");//escrevendo o arquivo e colocando as quebras de linhas
}

?>


FUI :P

Vlw thiago! perfeito! era até simples, mas a falta de prática hehehe :)

Ah, seu código tá um poquim errado, pq akele \n\r é desnecessário, pois ele inseria um espaço entre as linhas, e falta uma quebra de linha no texto a ser inserido.. ficou perfeito assim:

<?php
$arquivo="teste.php";//o arquivo
$linhas=file($arquivo);//pegando os valores do arquivo
$escrever='<?  $user = "hugo"; ?>'.[B]"\n"[/b];//conteudo que será iniciado no inicio do arquivo
$abertow=fopen($arquivo,"w");//abrindo e zerando o arquivo;
fwrite($abertow,$escrever);//escrevendo no inicio do arquivo o texto
$abertoa=fopen($arquivo,"a");//abrinco para adicionar no arquivo
for($x=0;$x < count($linhas);$x++){
fwrite($abertoa,[b]$linhas[$x][/b]);//escrevendo o arquivo e colocando as quebras de linhas
}

?>

vlw mesmo kra!! abracaum!! :)
←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←
"Não sabendo que era impossível, foi lá e fez!"
←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←

#13 LarPhozyHah

LarPhozyHah

    Super Veterano

  • Usuários
  • 14515 posts
  • Sexo:Masculino
  • Localidade:San Miguel de Tucuman

Posted 20/10/2017, 15:48

Viagra rique En Ligne Pastillas Cialis Precio buy vardenafil 40 mg online Pyridium 200mg Where To Purchase Kirklees

#14 RonsisM

RonsisM

    Super Veterano

  • Usuários
  • 15724 posts
  • Sexo:Masculino
  • Localidade:Plovdiv

Posted 20/10/2017, 15:57

About Order Viagra From Canada Equivalent Medicine To Amoxicillin online pharmacy Generic Doryx 100mg Bacterial Infections Direct Free Consultation Dapoxetine Hydrochloride




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq