Jump to content

Archived

This topic is now archived and is closed to further replies.

Gustavo Freitas

Apagar o conteúdo de um arquivo .txt

Recommended Posts

Cara, basta você pergorrer linha a linha este documento, guardando estas linhas em uma variavel, depois de um str_replace e coloque no lugar do que você quer apagar "" para remover dali o que você deseja.AbraçosPaulo César

Share this post


Link to post
Share on other sites

Desculpa aew + eu sou meio novato, num entendi muito bem o que você quiz dizer...o lance é que as informações estão no arquivo "file.txt", e num determinado espaço de tempo eu preciso apagar seu conteúdo. Pensei em fazer com o fopen, + não sei como.Tipow:fopen("file.txt", "deleta tudo dentro do arquivo");

Share this post


Link to post
Share on other sites

simples só abrir o arquivo e salvar o conteudo em branco ou criar um arquivo novo tanto faz

Share this post


Link to post
Share on other sites

Gustavo, primeiro assim, você quer apagar somente uma parte do texto ou o texto todo? para apagar o texto todo, basta criar um outro arquivo por cima com o fopen mesmo, mas ai você precisa passar o modo correto, tipo assim

 

fopen(ARQUIVO,MODO)

 

Onde ARQUIVO é um ponteiro para uma string que representa o nome do arquivo. Na prática é o nome do arquivo propriamente dito e pode ser um PATH, ou seja, algo como "C:\docs\arquivo.txt", no windows; ou algo como "/home/samu/arquivo.txt" no linux. MODO é uma string que representa como o arquivo será aberto de acordo com a tabela abaixo:

 

MODO COMO O ARQUIVO SERÁ ABERTO

r Abre um arquivo texto para leitura.

w Abre um arquivo texto para escrita. Se um arquivo com o mesmo nome existir, será sobrescrito.

a Abre um arquivo texto para anexação. Se o arquivo não existir, será criado.

rb Abre um arquivo binário para leitura.

wb Abre um arquivo binário para escrita. Se um arquivo com o mesmo nome existir, será sobrescrito.

ab Abre um arquivo binário para anexação. Se o arquivo não existir, será criado.

r+

w+

a+ Abre um arquivo texto para leitura/escrita. Se o arquivo não existir, será criado.

r+b

w+b

a+b

rb+

wb+

ab+ Abre um arquivo binário para leitura/escrita. Se o arquivo não existir, será criado.

 

Se nao entender isso ai, pq ficou meio embaralhado, de uma olhada neste link http://geocities.yahoo.com.br/sdiasneto/c_int/arquivos.htm

 

Abraços

Paulo

Share this post


Link to post
Share on other sites

eu entendi, fiz da maneira que o Fabyo sugeriu, ficou assim:

 

PHP

[*]

[*]<?

[*] fopen("msg.txt", "w+");

[*] Header("Location ok.php");

[*]?>

 

Ele apagou o conteúdo como eu queria, + não redirecionou a página.

Share this post


Link to post
Share on other sites

PHP

[*]

[*]function arquivoSubt($arq,$procura,$sbst)

[*]{

[*] $arquivo = $arq;

[*] $abri = @fopen($arquivo,"r");

[*] $cntd = @fread($abri,filesize($arquivo));

[*] if (($abri) && ($cntd))

[*] {

[*] $trat = eregi_replace($procura,$sbst,$cntd);

[*] fclose($abri);

[*] $grav = fopen($arquivo,"r+");

[*] fputs($grav,$trat);

[*] fclose($grav);

[*] echo $trat;

[*] }

[*] else

[*] {

[*]  echo 'Arquivo não existe!';

[*] }

[*]

[*]}

[*]arquivoSubt('arquivo.txt','[a-z]?[?ç*&¨%$#@!,|"-_()=\\.+!\sáàâãéèêíìîóòôõúùû]',' ');

[*]

Share this post


Link to post
Share on other sites

você esta gravanda as paginas com espaço em branco entre os nomes??Header("Location ok.php"); uma dica, coloque sempre um _ entre elas tipoHeader("Location_ok.php"); OK? mas ainda aconselho a usar o js pra isso!AbraçosPaulo

Share this post


Link to post
Share on other sites

Ta errado isso Header("Location_ok.php"); o Location faz parte da função o certo é assim mesmo:

header("Location: pagina.php");

 

Gustavo Freitas

 

abra o arquivo e grave o conteudo em branco é simples com poucas linhas você faz isso nao precisa de mais nada

Share this post


Link to post
Share on other sites

Realmente Fabyo, eu só precisei de uma linha:

 

PHP

[*]<?

[*]//Abre o arquivo para leitura e escrita; coloca o ponteiro do arquivo no 

[*]//começo e diminui (trunca) o tamanho do arquivo para zero. Se o arquivo 

[*]//não existe, tenta criá-lo.

[*] fopen("msg.txt", "w+")

[*]?>

 

Nesse caso, gostaria de entender melhor esse procedimento, li muito rapidamente no seu curso de php. Pelo que eu entendi ele abre o arquivo e o diminui para o menor tamanho possível certo? Isso quer dizer que pro arquivo sofrer essa redução ele perderá suas informações?

Share this post


Link to post
Share on other sites

nao o correto mesmo é você abrir o arquivo e salvar com fwrite com o conteudo vazio

Share this post


Link to post
Share on other sites

isso é fácil.

Exemplo, temos um arquivo texto com os seguintes dados:

 

0|ka@kaw.com|klawdyus

1|wauneys@ig.com|valmir

2|fifi@teteu.com|fiofó

 

PHP

[*]<?

[*]// Vamos inicialmente abrir e receber os dados dos arquivos.

[*]$abre = fopen("arquivo.txt","r");

[*]$dados = fread($abre,filesize("arquivo.txt"));

[*]fclose($abre);

[*]

[*]//Vamos agora dividir as linhas, e separar os dados por "\n"

[*]$linhas = explode("\n",$dados);

[*]

[*]//agora, supondo que você quer apagar a linha cujo id seja o "1", no caso a segunda linha, então você faz assim:

[*]

[*]unset($linhas[1]);

[*]

[*]se voce mandar exibir o array, logo após o unset, ele já vai exibir sem a segunda linha, como abaixo.

[*]

[*]print_r($linhas);

[*]

[*]array(

[*][0]=> 0|ka@kaw.com|klawdyus

[*][2]=>2|fifi@teteu.com|fiofó

[*]);

[*]

[*]//Aí, é só você mandar gravar novamente por cima do arquivo atual, por exemplo:

[*]

[*]$cria = fopen($arquivo.txt,"w+");

[*]//quando voce abre no modo w+, ele apaga os dados antigos

[*]

[*]fwrite(implode("\n",$linhas)); 

[*]fclose($cria);

[*]

[*]?>

[*]

[*]Sobrou alguma dúvida?

Share this post


Link to post
Share on other sites

Não sei se com a idade dos tópicos, alguém vai ter algum interesse, mas eu modifiquei o código anterior para apagar o conteúdo de um arquivo mais facilmente. Aí vai:

<?
 unset($linhas);
 $cria = fopen("database.txt","w+");
 fclose($cria);
?>
<br><br><br><br><br><big><big><center>Arquivo formatado com sucesso.</center></big></big>

Pode colocar na página, que quando ela for aberta, vai apagar o conteúdo do arquivo "database.txt" mantendo seu CHMOD. Aí você pode usar sua criatividade e usar um botão em uma página anterior para chamar essa, ou pode colocar um timer para apagar de tanto em tanto tempo.

Share this post


Link to post
Share on other sites

Não sei se com a idade dos tópicos, alguém vai ter algum interesse...

 

Pois é, acho que não vale a pena responder topicos tão antigos..

acho melhor ajudar a quem precisa nos topicos mais recentes

 

:D

Share this post


Link to post
Share on other sites

 

Pois é, acho que não vale a pena responder topicos tão antigos..

acho melhor ajudar a quem precisa nos topicos mais recentes

 

:D

 

É cara, pode até ser, mas fica aí para as próximas pessoas que precisarem

de uma ajudinha.

Share this post


Link to post
Share on other sites

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.