remover uma linha

783 views
Skip to first unread message

luan souza

unread,
Apr 10, 2012, 9:17:43 PM4/10/12
to PHP Paraíba
Galera to com uma duvida gostaria de saber se tem como eu por exemplo
pegar um arquivo txt procurar uma determinada palavra e deletar toda
linha que essa palavra esta

Arthur Azevedo

unread,
Apr 10, 2012, 9:54:11 PM4/10/12
to php...@googlegroups.com
Seu arquivo txt tem algum formato ? tipo um ';' para quebrar as linhas ou é um texto contínuo?


--
Você está recebendo esta mensagem porque se inscreveu no grupo "PHP Paraíba" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para php...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para php-pb+un...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/php-pb?hl=pt-BR.




--
--
Arthur Azevedo  ( Artinfo )
Técnico em Desenvolvimento Unimed N/NE
Graduado em Análise e Desenvolvimento de Sistemas - iDez
Linux User #502778
Ubuntu User #32497
http://meadiciona.com/artinfo

+55 83 8802-1224

---------------------------------------------------------------------------
Antes de imprimir veja a real importância do material a ser impresso, pense em seu
compromisso com o Meio Ambiente !

Use como Rascunho o outro lado da
Folha.

A Natureza agradece!!!

---------------------------------------------------------------------------

luan souza

unread,
Apr 10, 2012, 10:17:48 PM4/10/12
to php...@googlegroups.com
Contininuo
mas ele tem tipo assim 
test1 resto da linha
test2 resto da linha
test2 resto da linha
test1 resto da linha

ai quando aparecer test1 removesse toda a linha 
Esta mensagem pode contenter informações de conteudo privado ou seja com direitos autorais, qual quer forma de compartilhamento parcial ou total sem a devida autorização esta sujeito a processo.

Tiago Leite

unread,
Apr 10, 2012, 10:35:30 PM4/10/12
to php...@googlegroups.com
luan,
uma saída seria você ler linha a linha do arquivo.
Daí você testa se a linha tem a palavra que você quer tirar.
Se não tem a palavra na linha, você vai concatenando cada linha que deve permanecer no arquivo.
Após o fim, você zera o arquivo e escreve o conteúdo da variável.

Glauber

unread,
Apr 11, 2012, 3:25:03 AM4/11/12
to php...@googlegroups.com
arquivo.txt :
-------------------------------------------------

test1 resto da linha
test2 resto da linha
test23 resto da linha 

test2 resto da linha
test1 resto da linha

-------------------------------------------------

arquivo.php

-------------------------------------------------

<?php

//Lê arquivo
$arquivo = file_get_contents('arquivo.txt');
//Transforma cada linha em array
$linhas = explode("\n", $arquivo);
//Define a ocorrencia a ser buscada
$palavra = 'test2';
//Faz uma varredura em cada linha em busca da ocorrência
foreach($linhas as $linha => $valor) {
    $posicao = preg_match("/\b$palavra\b/i", $valor);
    if($posicao) {
        unset($linhas[$linha]);
    }
}
//Retorna o array a uma string
$arquivo = implode($linhas);
//Salva o arquivo de volta
file_put_contents('arquivo.txt', $arquivo);

?>
#71#77.

Glauber

unread,
Apr 11, 2012, 3:26:39 AM4/11/12
to php...@googlegroups.com
fiz esse script ai, testei e deu certo.

Espero ter ajudado
--
#71#77.

Alwin Garside

unread,
Apr 11, 2012, 3:38:03 AM4/11/12
to php...@googlegroups.com
// leia o arquivo bla.txt como um array
$textArray = file('bla.txt');

// veja cada linha do arquivo
foreach($textArray as $key => $line)
{
// Se tive o texto que esta procurando na linha remove o indice do array
if(strpos('texto que ta procurando', $line) !== false)
{
unset($textArray[$key]);
}
}

// Criar um string com o conteudo do array
$text = implode('', $textArray);

file_put_contents('bla.txt', $text);

Se quiser uma solucao que usa menos memoria, tambem da pra criar um
loop com fgets():

$readHandle = fopen('bla.txt', 'r');
$writeHandle = fopen('bla2.txt', 'w');

while(($line= fgets($readHandle)) !== false)
{
if(strpos('Texto', $line) === false)
{
fwrite($writeHandle, $line);
}
}

fclose($readHandle);
fclose($writeHandle);

Alwin


Sent from Gmail

2012/4/11 Tiago Leite <tjonat...@gmail.com>:

luan souza

unread,
Apr 11, 2012, 10:23:33 AM4/11/12
to php...@googlegroups.com
Pow vlw galera perfeito *---*
Reply all
Reply to author
Forward
0 new messages