Ir para conteúdo

Arquivado

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

ivisonk99

detectar palavra arquivos .txt

Recommended Posts

Não sei se é a melhor opção, mas não custa tentar. Após rodar basta checar com um strpos se aquele arquivo possui o nome X, caso tenha manda deletar...

http://php.net/manual/pt_BR/function.glob.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Clica no LINK que eu passei, o manual mostra como chega os arquivos...

Compartilhar este post


Link para o post
Compartilhar em outros sites

só to me confudindo pq ja tem um foreach n sei como fazer o glob funcionar no foreach ja existente

 

foreach (glob("*.txt") as $arquivo) {

 

foreach($linhas as $linha => $valor) 
{
    $posicao = preg_match("/\b$palavra\b/i", $valor);
    if($posicao) {
    mysql_query("DELETE FROM cookies WHERE login = '$arquivo1'");
    unlink ("$arquivo1");
    echo "excluido";
    }
}

 

}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
18 minutos atrás, ivisonk99 disse:

up

Onde está os arquivos e da onde você quer deletar? Não entendi...

 

1 hora atrás, ivisonk99 disse:

mysql_query("DELETE FROM cookies WHERE login = '$arquivo1'");

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Divide o problema, velho...

Fica 1998989918x mais facil de resolver 'micro problema' do que um problemão.

 

Exemplo:

 

Problemão:
 

Citar

Tenho mais de 500 arquivos .txt  como faço pra deletar o arquivo que tenha aquela determinada palavra?

 

 

Primeira parte:
Tenho mais de 500 arquivos .txt  
 

$arquivos = glob('arquivos/*.txt');

$pasta  = 'arquivos/';

foreach($arquivos as $arquivo){
	print $arquivo;
}

 

Segunda Parte:
Arquivo que tenha aquela determinada palavra? (leitura de arquivo)

$handle = @fopen('arquivos/arquivo1.txt', "r");
if ($handle) {
    while (($buffer = fgets($handle, 4096)) !== false) {
        echo $buffer;
    }
    if (!feof($handle)) {
        echo "Error: unexpected fgets() fail\n";
    }
    fclose($handle);
}


Terceira parte:

tem aquela determinada palavra?

$full_string = ' que filme top, você precisa ver ele!';
$palavra_procurar = 'top';

if (strpos($full_string, $palavra_procurar) !== false) {
	echo 'Você é tosca';
} else {
	echo 'Você não é tosca';
}

 

 

 

Consegue juntar todos os pedaços de 'lego' e fazer o seu algoritmo agora?

 

<!-- SPOILER -->

$arquivos = glob('arquivos/*.txt');

$pasta  = 'arquivos/';

$palavra_procurar = 'beraldo';

foreach($arquivos as $arquivo){
	
	$tem_palavra = false;
	
	$handle = @fopen($arquivo, "r");
	if ($handle) {
		while (($buffer = fgets($handle, 4096)) !== false) {
			
			//echo $buffer;
			
			if (strpos($buffer, $palavra_procurar) !== false) {
				$tem_palavra = true;
				
			} 
		}
		if (!feof($handle)) {
			echo "Error: unexpected fgets() fail\n";
		}
		fclose($handle);
	}
	
	
	if($tem_palavra){
		//Se entrou aqui o $arquivo do loop atual tem a palavra...
		print $arquivo . '<br />';
		
		//delete..
		//chama a ambulancia
		//E por ai vai...		
	}
}

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 16/03/2017 at 16:01, gabrieldarezzo disse:

Divide o problema, velho...

Fica 1998989918x mais facil de resolver 'micro problema' do que um problemão.

 

Exemplo:

 

Problemão:
 

 

 

Primeira parte:
Tenho mais de 500 arquivos .txt  
 


$arquivos = glob('arquivos/*.txt');

$pasta  = 'arquivos/';

foreach($arquivos as $arquivo){
	print $arquivo;
}

 

Segunda Parte:
Arquivo que tenha aquela determinada palavra? (leitura de arquivo)


$handle = @fopen('arquivos/arquivo1.txt', "r");
if ($handle) {
    while (($buffer = fgets($handle, 4096)) !== false) {
        echo $buffer;
    }
    if (!feof($handle)) {
        echo "Error: unexpected fgets() fail\n";
    }
    fclose($handle);
}


Terceira parte:

tem aquela determinada palavra?


$full_string = ' que filme top, você precisa ver ele!';
$palavra_procurar = 'top';

if (strpos($full_string, $palavra_procurar) !== false) {
	echo 'Você é tosca';
} else {
	echo 'Você não é tosca';
}

 

 

 

Consegue juntar todos os pedaços de 'lego' e fazer o seu algoritmo agora?

 

<!-- SPOILER -->


$arquivos = glob('arquivos/*.txt');

$pasta  = 'arquivos/';

$palavra_procurar = 'beraldo';

foreach($arquivos as $arquivo){
	
	$tem_palavra = false;
	
	$handle = @fopen($arquivo, "r");
	if ($handle) {
		while (($buffer = fgets($handle, 4096)) !== false) {
			
			//echo $buffer;
			
			if (strpos($buffer, $palavra_procurar) !== false) {
				$tem_palavra = true;
				
			} 
		}
		if (!feof($handle)) {
			echo "Error: unexpected fgets() fail\n";
		}
		fclose($handle);
	}
	
	
	if($tem_palavra){
		//Se entrou aqui o $arquivo do loop atual tem a palavra...
		print $arquivo . '<br />';
		
		//delete..
		//chama a ambulancia
		//E por ai vai...		
	}
}

 

amigo você me salvou, obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por diego7correa
      Boa tarde,
      Estou com o seguinte desafio, a uns meses atrás criei um sistema de contra cheque online que consistia no processo de exporte do sistema local e importe no myphpadmin, porem está muito dificultoso as atualização, então gostaria de agilizar esse processo para colocar os contra-cheques online. A alternativa que eu acho que serviria seria exportar um arquivo TXT direto do sistema local enviar para o servidor ftp e consultar o arquivo via PHP. Primeiramente não tenho certeza se é possivel com a formatação do arquivo que eu consigo, porem  principal e aonde queria bastante a ajuda de quem puder,era de ler o trecho no arquivo que corresponde a apenas aquele funcionário pois atualmente só consigo ler o arquivo completo , no link abaixo segue o padrão de txt que estou tentando utilizar como um "Banco de dados" e em anexo a imagem explicando melhor o que quero fazer, por favor me ajudem
       
      https://1drv.ms/t/s!AgW-fNzbrkHCkGtWHr0zv9BWgPaa

×

Informação importante

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