dark0 Postado Abril 15, 2004 Denunciar Share Postado Abril 15, 2004 ae galera..como faço para apagar uma linha no arquivo?para escrever nele, eu uso o fputsmas para apagar a linha.. não sei como façoalguém pode me ajudar? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Error404 Postado Abril 15, 2004 Denunciar Share Postado Abril 15, 2004 Se eu não me engano, você tem que gravar todo o conteúdo em uma variável, tirar a última linha, apagar o arquivo todo e gravar o conteúdo sem a linha...Complicado... mas é o jeito... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Xandão Grunge Postado Abril 15, 2004 Denunciar Share Postado Abril 15, 2004 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 $textofclose($fp);//fecha o arquivo?>espero ter ajudado,Xandão Grunge Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 dark0 Postado Abril 15, 2004 Autor Denunciar Share Postado Abril 15, 2004 tá.. belezamas 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! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Error404 Postado Abril 15, 2004 Denunciar Share Postado Abril 15, 2004 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... Diz aí se você conseguiu... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 dark0 Postado Abril 15, 2004 Autor Denunciar Share Postado Abril 15, 2004 cara, me mostre como você testoupois 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)vlwate mais Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Error404 Postado Abril 15, 2004 Denunciar Share Postado Abril 15, 2004 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 $arrayarray_splice($array,22,1); ##retirando o elemento 22 da arrayif(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... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 dark0 Postado Abril 15, 2004 Autor Denunciar Share Postado Abril 15, 2004 beleza caraeu 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.. hehevaleu pela ajuda..se eu tiver mais alguma duvida mais "cabeluda" eu volto a postar.. vlw por tudot+ Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 dark0 Postado Abril 15, 2004 Autor Denunciar Share Postado Abril 15, 2004 404errorvlw 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.. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Error404 Postado Abril 15, 2004 Denunciar Share Postado Abril 15, 2004 Opa, de nada... qualquer coisa é só postar... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Gladisson Postado Abril 16, 2004 Denunciar Share Postado Abril 16, 2004 Nos script de PHP aqui do fórum eu utilizei algo semelhante para apagar os usuários que não está mais on-line.você pode dar uma olhado para você aprender mais um pouquinho. É o ultimo script: Chamado "Usuário On-line". Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
dark0
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
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.