Como deletar uma linha de um arquivo txt pelo php?

Enviada por Fernando Souza 
Fernando Souza
Como deletar uma linha de um arquivo txt pelo php?
21 de June de 2010 às 07:46PM
No titulo já diz tudo =/
Tentei desenvolver isso porém nao obtivi sucesso
=/
será que alguem pode dar uma luz de como fazer isso?
so iniciante em php =/
preciso deste codigo para implementar o meu site.
Att
Fernando,
Carlos Eduardo Gomes Monteiro
Re: Como deletar uma linha de um arquivo txt pelo php?
22 de June de 2010 às 03:57AM
Tenta isso...

<?php
$linhaExcluir = "Vai ser sofrido";

$handle = fopen("brasil.txt", "r");
if ($handle) {
while (!feof($handle)) {
$lines = fgets($handle, 4096);
if($lines != $linhaExcluir){
$gravar .= $lines;
}
}
fclose($handle);
file_put_contents("brasil.txt", $gravar);
}
?>

O conteúdo do TXT seria isso abaixo

#########################################
O Brasil será Hexacampeão
Trará a taça para casa!
Vai ser sofrido
Mas vamos ganhar
#########################################

Veja se isto presta!!!

FAlou
Fernando Souza
Re: Como deletar uma linha de um arquivo txt pelo php?
22 de June de 2010 às 08:17PM
tentei
=/
nao deletou
Fernando Souza
Re: Como deletar uma linha de um arquivo txt pelo php?
28 de June de 2010 às 05:28AM
Fernando Souza
Re: Como deletar uma linha de um arquivo txt pelo php?
28 de June de 2010 às 05:28AM
alguem sabe?
tentei como o carlos disse e naofoi
Marcos Regis
Re: Como deletar uma linha de um arquivo txt pelo php?
28 de June de 2010 às 05:19PM
Cara, primeiro você precisa indicar como quer eliminar a linha.
Algum parâmetro a ser comparado? É uma linha específica?
Isso é algo tão simples de fazer que se você não indicar qual a real situação vai ter dezenas de possibilidades.

Eis uma delas.

$arr = file('arquivo.txt'); // Lê todo o arquivo para um vetor

foreach($arr as $k=>$linha)
{
// passa linha a linha do arquivo
if($linha=='Texto a ser comparado')
unset($arr[$k]); // Elininando a linha
}

Reescrevendo o arquivo
file_put_contents('arquivo.txt',$arr);
Jefrey Sobreira Santos
Re: Como deletar uma linha de um arquivo txt pelo php?
01 de December de 2010 às 01:32PM
eu faço assim:
<?php
// Configure aqui
$linha = "Jogue a pedra na mãe, vagabundo!"; // conteudo da linha a ser retirada
$substituirpor = ""; //deixe em branco para simplesmente apagar a linha
$arquivo = "arquivo.txt";

$conteudo = file_get_contents($arquivo); // pega o conteúdo do arquivo e carrega-o em uma variável
$novoconteudo = str_replace($linha, $substituirpor, $arquivo); // cria um novo conteúdo
$gravar = fopen($arquivo, "w"); // abre o arquivo para escrita
fwrite($gravar, $novoconteudo); // grava o arquivo novamente, mas sem a linha
fclose($gravar); // fecha o arquivo
?>

Conteúdo de arquivo.txt

Joguei uma pedra na água
De tão pesada foi ao fundo
E os peixinhos gritaram
Jogue a pedra na mãe, vagabundo!

Eu sempre fiz assim, mas na verdade, deve haver alguma maneira de excluir determinada linha, indicada por números, mas eu ainda não sei como é.
Obs.: Não testei, mas deve funcionar.
Jefrey Sobreira Santos
Re: Como deletar uma linha de um arquivo txt pelo php?
01 de December de 2010 às 01:58PM
Corrigindo o meu post acima, troque essa linha:
$novoconteudo = str_replace($linha, $substituirpor, $conteudo); // cria um novo conteúdo
por essa:
$novoconteudo = str_replace($linha, $substituirpor, $conteudo); // cria um novo conteúdo
Diego
Re: Como deletar uma linha de um arquivo txt pelo php?
14 de February de 2017 às 07:00PM
Dessa Forma eu te ganranto funcionar kkkkk

forma ja testada.


<?php

//Ler o arquivo
$linhas = explode("\n", file_get_contents("./arquivo.txt"));

//Ler somente o conteudo da linha [0] do array ou seja linha 1 do texto
//Para linha "2" e so colocar [1] assim.
$linha_n = $linhas[0];

// Abre o arquivo e coloca o ponteiro no final
$arquivo = fopen('arquivo.txt','r+');
if ($arquivo) {
while(true) {
$linha = fgets($arquivo);
if ($linha==null) break;


// Busca o conteudo que vai ser alterado
if(preg_match("/$linha_n/", $linha)) {
$string .= str_replace("$linha_n", "Diego", $linha);
} else {
// Vai colocando tudo numa nova string
$string.= $linha;
}
}
// Move o ponteiro para o inicio pois o ftruncate() nao fara isso
rewind($arquivo);

// Apagar todo o conteudo
ftruncate($arquivo, 0);

// reescreve o conteudo do arquivo
if (!fwrite($arquivo, $string)) die('Não foi possível atualizar o arquivo.');
echo 'Arquivo atualizado com sucesso';
fclose($arquivo);
}

?>

Agora e so torcar Diego por "" Nada e sua linha vai ser reescrita com um vazio.
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.