Ir para conteúdo

Arquivado

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

Brunck

Código Eficiente para Verificar 2 .txt

Recommended Posts

Olá galera, estou com duas listas de e-mails, no caso a primeira lista podem ter dados que também tem na segunda lista.

Como posso verificar e salvar os dados que não tem na primeira e tem na segunda?

Obrigado desde já :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Há inúmeras formas de fazer isso.

 

A mais simples é colocar as duas listas em arrays e usar array_diff().

 

Também é possível criar uma terceira lista e ir preenchendo-a conforme vai lendo as duas outras listas. Antes de inserir um novo registro na nova lista, verifique se ele já existe.

 

 

A primeira forma é rápida e simples, mas exige bastante memória, se as listas foram muito grandes.

A segunda dá mais trabalho, mas exige o mínimo de memória

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Beraldo, obrigado pela ajuda, você possui algum exemplo usando array_diff e salvando a diferença entre eles? Creio que esse método é o mais eficiente, pois faz tudo na memória.

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

$fp1 = @fopen('lista1.txt', 'r');

 

 

if ($fp1) {

$array1 = explode("\n", fread($fp1, filesize('lista1.txt')));

}

$fp2 = @fopen('lista2.txt', 'r');

 

 

if ($fp2) {

$array2 = explode("\n", fread($fp2, filesize('lista2.txt')));

}

$resultado = array_diff($array1, $array2);

$i=0;

while ($resultado){

 

$fp = fopen("diferenca.txt", "a+");

$escreve = fwrite($fp, $resultado[$i]."\n");

 

fclose($fp);

$i++;

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acredito que com esse código acima, consegui, porém não sei quando parar no while...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu sei disso Beraldo, eu fiz o código e está funcionando, mas como faço para parar o while?

Obrigado.

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.