Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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

Compartilhar este post


Link para o post
Compartilhar em outros 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");

Compartilhar este post


Link para o post
Compartilhar em outros 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

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros 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áàâãéèêíìîóòôõúùû]',' ');

[*]

Compartilhar este post


Link para o post
Compartilhar em outros 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

Compartilhar este post


Link para o post
Compartilhar em outros 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

Compartilhar este post


Link para o post
Compartilhar em outros 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?

Compartilhar este post


Link para o post
Compartilhar em outros 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?

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros 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

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.