Ir para conteúdo
Fórum Script Brasil
  • 0

Lendo Arquivo Txt


doulo4ever

Pergunta

Galera, vou precisar da ajuda de vocês aqui...

Para ler um arquivo txt, em que estão gravados os dados "nome" e "msg" que estão separados por "###", eu estou usando:

while (!feof ($arquivo)) {

  //LÊ UMA LINHA DO ARQUIVO

  $linha = fgets($arquivo, 4096);

  //IMPRIME NA TELA O RESULTADO

  echo $linha."<br>";

}

Só que está aparecendo por exemplo:

Paulo###Mensagem

Lemão###Mensagem2

Preciso usar explode para separar o nome da mensagem! Tentei:

while (!feof ($ponteiro)) {

  //LÊ UMA LINHA DO ARQUIVO

  $linha = fgets($ponteiro, 4096);

  //IMPRIME NA TELA O RESULTADO

  $posts = explode('###,$linha);

  echo "<b>Nome:</b>&nbsp;".$result[0];

  echo "<b>Msg:</b>&nbsp;".$result[1];

}

Porém os dados implesmente não aparecem...

O que está errado nesse explode que eu fiz? É assim mesmo que usa?

Preciso de uma força!

falou t++

Link para o comentário
Compartilhar em outros sites

13 respostass a esta questão

Posts Recomendados

  • 0
while (!feof ($ponteiro)) {

  //LÊ UMA LINHA DO ARQUIVO

  $linha = fgets($ponteiro, 4096);

  //IMPRIME NA TELA O RESULTADO

  $posts = explode('###,$linha);

  echo "<b>Nome:</b>&nbsp;".$result[0];

  echo "<b>Msg:</b>&nbsp;".$result[1];

}

Tá faltando uma aspa:

while (!feof ($ponteiro)) {

  //LÊ UMA LINHA DO ARQUIVO

  $linha = fgets($ponteiro, 4096);

  //IMPRIME NA TELA O RESULTADO

  $posts = explode('###', $linha);

  echo "<b>Nome:</b>&nbsp;".$result[0];

  echo "<b>Msg:</b>&nbsp;".$result[1];

}

Até mais!

Link para o comentário
Compartilhar em outros sites

  • 0

não, ele serve pra negar o resultado da função... uma função que retornaria TRUE se a operação dentro dela fosse verdadeira, com o "!" na frente vai retornar TRUE caso o resultado da operação dentro dela seja falso.

beleza?

Link para o comentário
Compartilhar em outros sites

  • 0

Não, cara!

O resultado da função será TRUE ou FALSE, certo? Então, o quando você coloca:

if (condição) { procedimento caso seja TRUE } else { procedimento caso seja FALSE }

se você fizer assim:

if (!condição) { procedimento caso seja FALSE } else { procedimento caso seja TRUE }

É só isso que muda... entendeu?

Link para o comentário
Compartilhar em outros sites

  • 0
$result[0]; ???

esquesito não ?

Ahhh, acho que entendi o que você quer dizer...

É que tá assim:

$posts = explode('###', $linha);

echo "<b>Nome:</b>&nbsp;".$result[0];

Sendo que o certo, seria assim:

$posts = explode('###', $linha);

echo "<b>Nome:</b>&nbsp;".$posts[0];

Acho que tinha mais esse problema no código, tb...

Valeu, Roger!

Link para o comentário
Compartilhar em outros sites

  • 0

Valeu galera, agora os dados estão aparecendo normalmente!

Porém tem mais uma coisa...quando os dados são gravados, eu estou usando:

$conteudo = "$nome###$msg\r\n";

O que está em vermelhor quebra a linha para gravar o próximo cadastro, só que quando faço para mostrar os dados, sempre aparece uma linha em branco!

Por exemplo:

Nome: Paulo         Mensagem: Teste
Nome: Lemão         Mensagem: Teste2
Nome:               Mensagem:

Como devo fazer neste caso?

O que devo fazer no código abaixo:

while (!feof ($ponteiro)) {

  //LÊ UMA LINHA DO ARQUIVO

  $linha = fgets($ponteiro, 4096);

  //IMPRIME NA TELA O RESULTADO

  $posts = explode('###', $linha);

  echo "<b>Nome:</b>&nbsp;".$posts[0];

  echo "<b>Msg:</b>&nbsp;".$posts[1];

}

Valewww

Paulo

Link para o comentário
Compartilhar em outros sites

  • 0

Vixeeee, deu certo! Consegui usar file(), ele já retira automaticamente a linha em branco, faz tudo certinho, muito mais fácil mesmo!

Ficou assim:

$arquivo = file($arquivotxt);

foreach ($arquivo as $comentario) {

  //LÊ UMA LINHA DO ARQUIVO

  //IMPRIME NA TELA O RESULTADO

  $posts = explode('###', $comentario);

  echo "<b>Nome:</b>&nbsp;".$posts[0];

  echo "<b>Msg:</b>&nbsp;".$posts[1];

  echo "<br>";

}

Tá certo né? Pelo menos aqui funcionou!

Muito loco mexer com txt, não vai acupar nem 10% do espaço que ía ocupar se eu fosse fazer com banco de dados!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,2k
×
×
  • Criar Novo...