Jump to content
Fórum Script Brasil
  • 0

Arquivos


dark0

Question

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 to comment
Share on other sites

10 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      651.8k
×
×
  • Create New...