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

Arquivos


dark0

Pergunta

ae galera..

como faço para apagar uma linha no arquivo?

para escrever nele, eu uso o fputs

mas para apagar a linha.. não sei como faço

alguém pode me ajudar?

Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0

tenta o fwrite();

olha só o exemplo:

<?

$fp = fopen("teste.txt", "w"); //abre o arquivo para a gravação

$texto= "Hello World";

fwrite($fp, $texto); // grava no arquivo aberto o conteudo da variavel $texto

fclose($fp);//fecha o arquivo

?>

espero ter ajudado,

Xandão Grunge cool.gif

Link para o comentário
Compartilhar em outros sites

  • 0

tá.. beleza

mas xandão, eu consigo ler, e gravar no arquivo, sem problemas!

Mas eu queria saber, se existia algum comando que apagasse a linha toda.

No asp, se não me engano tem, por isso achei que no php tb tivesse!

Mas sabe o que eu fiz? (e ainda não tá 100%)

Abri o arquivo uma vez, fui até a linha que eu queria apagar. Aí, com o comando fputs, eu coloquei naquela linha espaços vazios.

Fechei o arquivo.

Abri ele de novo, e fui na linha que eu havia "apagado" (colocado os espaços), e inseri o conteudo que eu queria..

Mas ainda assim fica meio errado..

To fazendo uns ifs aqui.. deve ser algum dele fora do lugar.

Mas o que eu queria saber era se existia o tal comando.

Mas como não existe.. então VLW!

Até mais..

Abraços!

Link para o comentário
Compartilhar em outros sites

  • 0

Pois é, cara... o esquema de ponteiros do PHP pra trabalhar com arquivos é realmente uma titica...

A solução que eu testei aqui é a seguinte:

Dê um file() pra transformar cada linha do seu textbase em um elemento de uma array...

Então você vai ou:

•Excluir ou substituir esse elemento da array usando o array_splice()

ou:

•Quando for gravar de volta os dados, colocar um if pra que, na hora de gravar a linha indesejada, você não a grave ou grave alguma coisa em seu lugar...

Testei com um arquivo com 2000 linhas e me pareceu bem rápido, praticamente instantêneo...

Acho que esse é o melhor jeito mesmo... rolleyes.gif

Diz aí se você conseguiu... smile.gif

Link para o comentário
Compartilhar em outros sites

  • 0

cara, me mostre como você testou

pois eu testei com file, e não consegui fazer rodar..

atualmente to usando algo como isso:

$ponteiro = fopen($arquivo,"r+");

while(!feof($ponteiro))

aí.. aqui listo linha a linha.. e escrevo, leio.. falta apagar..

mas com file não consegui..

quem sabe não fica mais facil..

se puder, me mostre como fazer com file (um exemplo basico, que depois me viro)

vlw

ate mais

Link para o comentário
Compartilhar em outros sites

  • 0

Não custumo postar coisa pronta mas como o sr. já tem uma base de php boa e realmente quer entender a coisa:

$ark = "..\array.txt";

$array = file($ark); ##criando a array $array

array_splice($array,22,1); ##retirando o elemento 22 da array

if(is_file($ark)){ ##verificando se $ark é um arquivo

  $handle = fopen($ark,"r+"); ##abrindo $ark

  foreach($array as $v){ ##escrevendo os valores da $array de volta no $ark

     fwrite($handle,$v);

   }

}

Isso aí vai deletar a linha 22 de um arquivo... sendo que começa a contar do 0, então seria o 23º registro...

Como eu tinha dito, testei com um arquivo texto com 2000 linhas e foi que é uma beleza, acho que é viável... cool.gif

Link para o comentário
Compartilhar em outros sites

  • 0

beleza cara

eu estudando já havia conseguido usar o file..

armazenei legal, e depois fui tantar descobrir a propriedade que pega o total de elementos do array, já achei tb.

to indo aqui.. hehe

valeu pela ajuda..

se eu tiver mais alguma duvida mais "cabeluda" eu volto a postar..

vlw por tudo

t+

Link para o comentário
Compartilhar em outros sites

  • 0

404error

vlw por tudo..

consegui montar o que eu queria !!!

olha só o que eu fiz:

- peguei o conteudo do arquivo, joguei no vetor.

- passei posição em posição, comparando as linhas com uma palavra que estava sendo buscada.

- no if, se achasse, guardava a posição da palavra (a linha da mesma).

- depois, com a linha da palavra na mao, só atribui àquela posição do vetor, a nova palavra!

- depois, fiz um for, e joguei o vetor pra dentro do arquivo, usando o atributo "W" do fopen, pois assim, ele destroi o arquivo, e cria zerado.

Valeu por tudo!!

Abração.. podem fechar o tópico..

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