Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Seguinte, tenho um form que salva algumas informações num arquivo .txt, eu gostaria de saber, como apagar as informações salvas.
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");
simples só abrir o arquivo e salvar o conteudo em branco ou criar um arquivo novo tanto faz
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
repare no modo Wele verifica se existe o arquivo, se existir, ele apaga o que esta lah e cria um novo em branco.Abraços denovo
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.
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áàâãéèêíìîóòôõúùû]',' ');
[*]
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
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
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?
nao o correto mesmo é você abrir o arquivo e salvar com fwrite com o conteudo vazio
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?
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.
>
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
>
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.
>
É cara, pode até ser, mas fica aí para as próximas pessoas que precisarem
de uma ajudinha.
É isso aii
:D
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