Ir para conteúdo

POWERED BY:

Arquivado

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

Johnnys Mau

[Resolvido] filtrarlista de emails

Recommended Posts

Bom dia galera, estou com um problema aqui, tenho uma lista com emails nesse modelo

 

1 ([192.168.0.103])[192.168.0.103] rodrigo.andrade@rarcomunicacao.com.br aracaju.braslink.com[204.16.0.187] luiz@fullproductions.com.br

2 ([192.168.0.103])[192.168.0.103] rodrigo.andrade@rarcomunicacao.com.br aracaju.braslink.com[204.16.0.205] luiz@fullproductions.com.br

1 ([192.168.0.103])[192.168.0.103] rodrigo.andrade@rarcomunicacao.com.br aracaju.braslink.com[204.16.0.85] luiz@fullproductions.com.br

2 ([192.168.0.103])[192.168.0.103] rodrigo.andrade@rarcomunicacao.com.br gmail-smtp-in.l.google.com[209.85.143.26] raqueltvuniao@gmail.com

 

e preciso gravar o primeiro email num campo chamado email1 na tabela do BD e o segundo email num campo chamado email2, mas estou tendo problemas para filtrar essa lista, e armazenar esses emails em variaveis para poder fazer a query, se alguem puder dar uma luz ai agradeço! (tem alguma forma de fazer um array receber uma linha dessa e separar pelos espaços em brancos?)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exemplo com expressão regular

 

// lista separada por linhas
$lista = explode("\n", '1	([192.168.0.103])[192.168.0.103] rodrigo.andrade@rarcomunicacao.com.br aracaju.braslink.com[204.16.0.187] luiz@fullproductions.com.br
2	([192.168.0.103])[192.168.0.103] rodrigo.andrade@rarcomunicacao.com.br aracaju.braslink.com[204.16.0.205] luiz@fullproductions.com.br
1	([192.168.0.103])[192.168.0.103] rodrigo.andrade@rarcomunicacao.com.br aracaju.braslink.com[204.16.0.85] luiz@fullproductions.com.br
2	([192.168.0.103])[192.168.0.103] rodrigo.andrade@rarcomunicacao.com.br gmail-smtp-in.l.google.com[209.85.143.26] raqueltvuniao@gmail.com');

// para cada item
foreach($lista as $item){
// tira espaços desnecessários
$item = trim($item);
// se estiver vazio
if(empty($item)){
	// pula para a proxima
	continue;
}

// pegamos todos os emails
preg_match_all('@(\w+)(([.-]\w+))*\@(\w+)(([.-]\w+))+@',$item,$emails);

// exemplo mostrando os dois emails encontrados em cada linha
echo 'Linha: ', $item, PHP_EOL;
echo 'E-mail 1: ', $emails[0][0], PHP_EOL;
echo 'E-mail 2: ', $emails[0][1], PHP_EOL;
echo '---------------',PHP_EOL;
}

 

@braços e fique com Deus!

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php

$mails =
'1 ([192.168.0.103])[192.168.0.103] rodrigo.andrade@rarcomunicacao.com.br aracaju.braslink.com[204.16.0.187] luiz@fullproductions.com.br
2 ([192.168.0.103])[192.168.0.103] rodrigo.andrade@rarcomunicacao.com.br aracaju.braslink.com[204.16.0.205] luiz@fullproductions.com.br
1 ([192.168.0.103])[192.168.0.103] rodrigo.andrade@rarcomunicacao.com.br aracaju.braslink.com[204.16.0.85] luiz@fullproductions.com.br
2 ([192.168.0.103])[192.168.0.103] rodrigo.andrade@rarcomunicacao.com.br gmail-smtp-in.l.google.com[209.85.143.26] raqueltvuniao@gmail.com';


preg_match_all( '/[a-z\._-]+[@][a-z\._-]+/m', $mails, $matches );

var_dump( array_merge( array_chunk( $matches[ 0 ], 2 ) ) );

 

Saída

array
 0 => 
   array
     0 => string 'rodrigo.andrade@rarcomunicacao.com.br' (length=37)
     1 => string 'luiz@fullproductions.com.br' (length=27)
 1 => 
   array
     0 => string 'rodrigo.andrade@rarcomunicacao.com.br' (length=37)
     1 => string 'luiz@fullproductions.com.br' (length=27)
 2 => 
   array
     0 => string 'rodrigo.andrade@rarcomunicacao.com.br' (length=37)
     1 => string 'luiz@fullproductions.com.br' (length=27)
 3 => 
   array
     0 => string 'rodrigo.andrade@rarcomunicacao.com.br' (length=37)
     1 => string 'raqueltvuniao@gmail.com' (length=23)

 

Depois é só iterar o array

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.