Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17638
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Extrator de emails de url ou link

31-08-2008 10:16

Esse script faz a extração de emails de um texto ou uma url específica. Basta preencher o formulário ou com o url ou com o texto.

<?php $a_url = isset($_POST['url']) ? htmlspecialchars($_POST['url']) : ''; ?> <form action="teste.php" method="POST"> Coloque abaixo o url ( com http:// ) <br> <input type="text" name="url" size="60" value="<?php echo $a_url; ?>"> <br> ou <br> Coloque abaixo o texto onde há emails a ser retirado <br> <textarea name="texto" cols="50" rows="15"></textarea> <br> <input type="submit" name="envio" value="Pegar Emails"> </form> <?php if($_POST['envio']) { if(isset($_POST['url']) && !empty($_POST['url'])) { $texto = file_get_contents($_POST['url']); } elseif(isset($_POST['texto']) && !empty($_POST['texto'])) { $texto = $_POST['texto']; } if (!empty($texto)) { $filtro = preg_match_all( "/[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\.-][a-z0-9]+)*)+\\.[a-z]{2,}/i", $texto, $encontrado ); if($filtro) { foreach(array_unique($encontrado[0]) as $email) { echo $email . "<br>"; } } else { echo "Nenhum email encontrado."; } } } ?>

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 10 postagens
Mais de 10 postagens
Mensagens: 17
Sexo: Masculino
Localização: RJ
Contato:

Extrator de emails de url ou link

02-09-2008 18:31

Gostei deste post, e vou tentar incrementá-lo isto deve me ajudar a desenvolver mais conhecimentos da linguagem...

mas ele não funcionou com urls no eysePHP tive que rodar no serv linux...

parabens
0
Antunesh
redelance.com
 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17638
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Extrator de emails de url ou link

02-09-2008 18:37

¨peaceout¨
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 10 postagens
Mais de 10 postagens
Mensagens: 17
Sexo: Masculino
Localização: RJ
Contato:

Extrator de emails de url ou link

02-09-2008 18:56

Tentei alterar isto aqui para capturar urls... mas não consegi... tem aqui no forum algum tutor que explica como essas funçoes funcionam...?

"/[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\.-][a-z0-9]+)*)+\\.[a-z]{2,}/i"
0
Antunesh
redelance.com
 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17638
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Extrator de emails de url ou link

02-09-2008 19:26

São expressões regulares. Ainda não postei nada a fundo sobre o assunto.

Para recuperar as urls usa:

|([A-Za-z]{3,9})://([-;:&=\+\$,\w]+@{1})?([-A-Za-z0-9\.]+)+:?(\d+)?((/[-\+~%/\.\w]+)?\??([-\+=&;%@\.\w]+)?#?([\w]+)?)?|
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 10 postagens
Mais de 10 postagens
Mensagens: 17
Sexo: Masculino
Localização: RJ
Contato:

Extrator de emails de url ou link

02-09-2008 22:54

Show de bola... vou dar uma olhada em expressões regulares no php.org...
acho meio chato estudar por lá... mas este tipo de tut não são tão comuns na web mesmo...

¨grin¨
0
Antunesh
redelance.com
 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17638
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Extrator de emails de url ou link

02-09-2008 22:55

Bom estudo, aprendendo algo posta ¨plus¨
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 10 postagens
Mais de 10 postagens
Mensagens: 17
Sexo: Masculino
Localização: RJ
Contato:

Extrator de emails de url ou link

03-09-2008 16:53

este é o resultado que consegui, mas ele grava alguns email e depois perde a conexão com o banco
se tiver algum dica para melhorar isto ae ...
se fizer este "cara" logar no orkut "não vai prestar"... :-|

<?php $a_url = isset($_POST['url']) ? htmlspecialchars($_POST['url']) : ''; ?> <form action="loop2.php" method="POST"> Coloque abaixo o url ( com http:// ) <br> <input type="text" name="url" size="60" value="<?php echo $a_url; ?>"> <br> ou <br> Coloque abaixo o texto onde há emails a ser retirado <br> <textarea name="texto" cols="50" rows="15"></textarea> <br> Quantos e-mails? <br> <input type="text" name="cont" size="10" value="10"> <br> <input type="submit" name="envio" value="Pegar Emails"> </form> <?php if($_POST['envio']) { $i=0; $i2=0; $cont = ($_POST['cont']); $quant = 0; $quant1 = 0; $url[$i] = $_POST['url']; $textot = $_POST['texto']; while($quant < $cont){ if(isset($url[$i]) && !empty($url[$i])) { $texto = file_get_contents($url[$i]); } elseif(isset($texto) && !empty($texto)) { $texto = $textot; } //Area para fazer os testes de colheta de urls if (!empty($texto)) { $filtro = preg_match_all( "|([A-Za-z]{3,9})://([-;:&=\+\$,\w]+@{1})?([-A-Za-z0-9\.]+)+:?(\d+)?((/[-\+~%/\.\w]+)?\??([-\+=&;%@\.\w]+)?#?([\w]+)?)?|", $texto, $encontrado); if($filtro) { foreach(array_unique($encontrado[0]) as $urls) { $i2++; $url[$i2] = $urls; } } } if (!empty($texto)) { $filtro = preg_match_all( "/[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\.-][a-z0-9]+)*)+\\.[a-z]{2,}/i", $texto, $encontrado); if($filtro) { // Mensagens de Erro $msg[0] = "Conexão com o banco falhou!"; $msg[1] = "Não foi possível selecionar o banco de dados!"; $host = "host"; $base = "base"; $user = "user"; $pass = "senha"; // Fazendo a conexão com o servidor MySQL //$conexao = mysql_pconnect("$host","$user","$pass") or die($msg[0]); //mysql_select_db("$base",$conexao) or die($msg[1]); foreach(array_unique($encontrado[0]) as $email) { //grava banco //$query = "INSERT INTO lista (`email`) // VALUES('$email')"; //mysql_query($query,$conexao); $quant++; echo $email; echo "</br>"; } } } $i++; } if ($quant){ echo "</br>$quant E-mails encontrados "; echo "</br>$i2 Url's encontradas "; } } ?>

0
Antunesh
redelance.com
 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17638
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Extrator de emails de url ou link

03-09-2008 17:26

Ví que aparentemente limitou algo ai, qual objetivo nisso?

A partir de quantos emails não grava?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 10 postagens
Mais de 10 postagens
Mensagens: 17
Sexo: Masculino
Localização: RJ
Contato:

Extrator de emails de url ou link

03-09-2008 17:46

Limitei?
Onde?
não grava mais que três registros...
se eu apenas exibir ele chega ao numero que eu pedir no form...
0
Antunesh
redelance.com
 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17638
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Extrator de emails de url ou link

03-09-2008 17:47

Com base no script original, em uma tabela chamada: nomes, com somente o campo: email - varchar(50), segue o script abaixo:

* Obs: fiz com base em email, e ele não repete 2 emails iguais no bd.

<?php $conexao = mysql_connect("localhost", "login", "senha") or die(mysql_error()); $db = mysql_select_db("bancodedados"); ?> <?php $a_url = isset($_POST['url']) ? htmlspecialchars($_POST['url']) : ''; ?> <form action="teste.php" method="POST"> Coloque abaixo o url ( com http:// ) <br> <input type="text" name="url" size="60" value="<?php echo $a_url; ?>"> <br> ou <br> Coloque abaixo o texto onde há emails a ser retirado <br> <textarea name="texto" cols="50" rows="15"></textarea> <br> <input type="submit" name="envio" value="Pegar Emails"> </form> <?php if($_POST['envio']) { if(isset($_POST['url']) && !empty($_POST['url'])) { $texto = file_get_contents($_POST['url']); } elseif(isset($_POST['texto']) && !empty($_POST['texto'])) { $texto = $_POST['texto']; } if (!empty($texto)) { $filtro = preg_match_all( "/[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\.-][a-z0-9]+)*)+\\.[a-z]{2,}/i", $texto, $encontrado ); if($filtro) { foreach(array_unique($encontrado[0]) as $email) { $selec_1 = "SELECT email FROM nomes WHERE email='$email'"; $exec_1 = mysql_query($selec_1, $conexao) or die(mysql_error()); $quantos = mysql_num_rows($exec_1); if($quantos == 0) { // parte do insert $selec_2 = "INSERT INTO nomes (email) VALUES('$email')"; $exec_2 = mysql_query($selec_2, $conexao) or die(mysql_error()); // parte do insert } } echo "Emails inseridos com sucesso."; } else { echo "Nenhum email encontrado."; } } } ?>

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 10 postagens
Mais de 10 postagens
Mensagens: 17
Sexo: Masculino
Localização: RJ
Contato:

Extrator de emails de url ou link

03-09-2008 18:56

Blz...

este funcionou direitin.. percebi que o meu gravava apenas no primeiro looping do while...

estranho...

deve ser o while..
ou o servidor "free" que to usando...
pois no EysePhp não funciona tb...
chegando em casa vou testar no serv linux..

mas vwl... ¨laughing¨
0
Antunesh
redelance.com
 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17638
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Extrator de emails de url ou link

03-09-2008 18:59

:smile:
0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado