Ir para conteúdo
Entre para seguir isso  
ufrrj99

PHP > VB - Alterar Lista Emails no Arquivo TXT

Recommended Posts

O PHP abaixo já funciona mas preciso transformá-lo em VB pra ser mais útil e menos limitado.
Da forma que está ele procura por determinada palavra, cria um arquivo e move todas as palavras encontradas em todos os arquivos da pasta para um único arquivo.
Agradeço por qualquer alteração ou melhoria nele.

Retirar a opção de apenas arquivos TXT e deixar ler qualquer arquivo
$files = glob($base.'*.txt'); // Pega todos os arquivos que terminam com .txt

Preciso que ele trabalhe de forma automática e fazendo o seguinte:

1) Opção de escolher pasta ORIGEM
2) opção de escolher pasta DESTINO

Na pasta ORIGEM:
3) Abrir o primeiro arquivo TXT (que tem um email por linha+Enter)
4) Ver qual servidor do primeiro email - exemplo: @teste.com.br

5) Criar um arquivo chamado "teste.com.br" na pasta DESTINO
6) Mover todos os emails @teste.com.br deste arquivo origem para o arquivo destino
7) Salvar o arquivo aberto e recomeçar a partir da opção 3.

Como são vários arquivos e alguns com 300Mb então precisa fazer LOOP do 3 ao 7 para economizar memória e o computador conseguir realizar a tarefa.

$base = DIR.DIRECTORY_SEPARATOR; // Diretório onde estão os arquivos txt.

$files = glob($base.'*.txt'); // Pega todos os arquivos que terminam com .txt

$search = 'silva'; // a palavra que deseja buscar
$found = array();
$arr = array();
// Itera os arquivos encontrados
foreach ($files as $file) {

// Lê cada arquivo em um array
$arr = file($file);
foreach ($arr as $k => $v) {
// Se encontrar a palavra, guarda no array $found e remove do array que leu o arquivo.
if (stripos($v, $search) !== false) {
$found[] = trim($arr[$k]);
unset($arr[$k]);
}
}
// Salva os dados no arquivo, com os nomes removidos
if (!empty($found)) {
file_put_contents($file, implode('', $arr));
}

}
// salva todos os nomes encontrados
if (!empty($found)) {
file_put_contents($base.'silva.txt', implode(PHP_EOL, $found));
}

unset($found, $arr);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
Entre para seguir isso  

  • Conteúdo Similar

    • Por Gustavo2503
      Eu preciso de um link para abrir um arquivo em decodificado em base64, eu fiz o link mas quando eu abro o link ele não aparece nada, o título da página fica "Sem título" e a página fica branca, vazia. E quando eu clico na URL e dou ENTER, ele aparece o meu arquivo normal. O link está assim:
      <a target="_blank" href="data:application/pdf;base64,MEU_ARQUIVO_BASE64">Arquivo</a> Como arrumar isso?
    • Por Lenon John
      Eu preciso inserir mais de 3000 itens no ArrayList, o que gera o erro: method code too large.
      Acredito que usando um TXT como "BANCO DE DADOS" vai resolver o meu problema.
       
      Atualmente eu faço assim:
      -----------------------------------------------------
      ArrayList lista = new ArrayList();

      // inserindo os itens no ArrayList
      lista.add(new produtoItem(R.drawable.imagem, "AA", "AA", "AA", "AA"));

      adapter = new produtoAdapter(this, lista);
      ListView listView = (ListView) findViewById(R.id.listView1);
      listView.setAdapter(adapter);
      -----------------------------------------------------
       
      Como pegar os dados de um TXT e inserir no meu arrayList?

      OBS: Esse APP precisa funcionar sem a necessidade de internet. Ou seja, não posso usar um banco dados externo.
    • Por gilbertjuniors
      Pessoal, boa noite.
       
      Instalei o Xampp na minha máquina e estou tentando configurar o Mercury para enviar emails para minha conta no GMail
       
      Segui os seguintes vídeos tutoriais
      https://www.youtube.com/watch?v=iwjNIUuM_iI
      https://www.youtube.com/watch?v=rcWS1uuf304
      https://www.youtube.com/watch?v=2-WYsG_yIX8
       
      As explicações sobre as configurações são similares nestes 3 vídeos, porém, não está funcionando.
      O envio usando o Send Mensage Message do próprio Mercury também não deu certo
       
      Desativei o anti-vírus e o firewall mas também não resolveu.
       
      Alguém pode me dar uma luz? 
      Preciso criar um ambiente para testar o envio de email através de formulário de site que estou criando.
    • Por kleinfelipe1
      Estou desenvolvendo um site onde os participantes cumprem desafios, e eu preciso que, depois que o participante enviou o video, o status dele seja 1. E depois de 24 horas do vídeo enviado, volte a ser 0 para a condição de recebimento de emails. Por onde começo?
×

Informação importante

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