Retrouver l'extension d'un email

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics


finstreet
WRInaute accro
WRInaute accro
 
Messages: 10468
Inscription: Dim Juil 10, 2005 12:39

Retrouver l'extension d'un email

Message le Lun Jan 28, 2008 13:05

Bonjour à toutes et tous,

Bon alors j'ai des spams nombreux sur mes formulaires d'inscription. Je n'ai pas de captcha et je ne compte pas en mettre.

Par contre j'aimerais avoir une tite expression régulière pour bloquer certaines extensions et certains domaines dans les zemails

Exemple :

-machintruc@machin.truc
Là j'aimerais retrouver le ".truc"

-supertruc@nomdetruc.machin
Là j'aimerais retrouver le "nomdetruc.machin"

Voila ... si vous avez une tite astuce... je pense que c lié aux expressions régulières, mais si vous avez d'autres idées...

Marchi :)


Bobulum
WRInaute discret
WRInaute discret
 
Messages: 56
Inscription: Lun Mar 21, 2005 11:33

Message le Lun Jan 28, 2008 13:07

Salut,

Perso afin d'éviter les . multiples dans les adresses, je ferais avec un simple substr en partant de la fin de la chaine jusqu'à un strstr de . ou de @.

Quelle phrase de geek quand même. :P

@+ :wink:


finstreet
WRInaute accro
WRInaute accro
 
Messages: 10468
Inscription: Dim Juil 10, 2005 12:39

Message le Lun Jan 28, 2008 13:15

mdr .. .ben j'ai testé en fait, mais on fait comment pour aller à la fin de la chaine ? j'ai pas trouvé


seebz
WRInaute impliqué
WRInaute impliqué
 
Messages: 476
Inscription: Dim Avr 15, 2007 17:14

Message le Lun Jan 28, 2008 13:22

$email = 'user@example.com';
$domaine = strstr($email, '@');
echo $domaine; //Affiche : @example.com

pour l'extension, faudra peut-être utiliser http://fr.php.net/strrpos


Bobulum
WRInaute discret
WRInaute discret
 
Messages: 56
Inscription: Lun Mar 21, 2005 11:33

Message le Lun Jan 28, 2008 13:24

finstreet a écrit:mdr .. .ben j'ai testé en fait, mais on fait comment pour aller à la fin de la chaine ? j'ai pas trouvé


Le deuxième paramètre doit être à -1.

http://be2.php.net/manual/fr/function.substr.php, exemple 2.


finstreet
WRInaute accro
WRInaute accro
 
Messages: 10468
Inscription: Dim Juil 10, 2005 12:39

Message le Lun Jan 28, 2008 13:54

Merci à tous les deux... je vais fouiller ca :)

Merci encore


webmasterlamogere
WRInaute accro
WRInaute accro
 
Messages: 1874
Inscription: Dim Déc 17, 2006 21:08

Message le Lun Jan 28, 2008 15:04

avec ca :
Code: Tout sélectionner
$extension = substr($url, strrpos($url, '.') + 1);


finstreet
WRInaute accro
WRInaute accro
 
Messages: 10468
Inscription: Dim Juil 10, 2005 12:39

Message le Lun Jan 28, 2008 15:06

le . peut etre aussi avant le @ ... c génant


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3324
Inscription: Mar Nov 16, 2004 18:27

Message le Lun Jan 28, 2008 15:20

finstreet a écrit:Merci à tous les deux... je vais fouiller ca :)

Merci encore


lu finstreet

ca devrait aller + vite :

Code: Tout sélectionner
<?php

$mail = 'adresse@machin.truc';
$masque = '#(?:[a-zA-Z]+)(?:@?)(?:[^.]+)(?:.?)(.+)#';
preg_match_all($masque, $mail, $matches);
print_r($matches);
// Array ( [0] => Array ( [0] => adresse@machin.truc ) [1] => Array ( [0] => truc ) )


$mail = 'adresse@machin.truc';
$masque = '#(?:[a-zA-Z]+)(?:@?)(.+)#';
preg_match_all($masque, $mail, $matches2);
print_r($matches2);
// Array ( [0] => Array ( [0] => adresse@machin.truc ) [1] => Array ( [0] => machin.truc ) )

?>


finstreet
WRInaute accro
WRInaute accro
 
Messages: 10468
Inscription: Dim Juil 10, 2005 12:39

Message le Lun Jan 28, 2008 15:26

Rhooo Koogar

Marchi :) Oui effectivement c bcp plus propre

Merci


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3324
Inscription: Mar Nov 16, 2004 18:27

Message le Lun Jan 28, 2008 15:31

avec plaisir :D

j'ai oublié le (.) pour l'extention, si veux le capturer aussi

Code: Tout sélectionner
$mail = 'adresse@machin.truc';
$masque = '#(?:[a-zA-Z]+)(?:@?)(?:[^.]+)(.?.+)#';
preg_match_all($masque, $mail, $matches);
print_r($matches);
// Array ( [0] => Array ( [0] => adresse@machin.truc ) [1] => Array ( [0] => .truc ) )


++


webmasterlamogere
WRInaute accro
WRInaute accro
 
Messages: 1874
Inscription: Dim Déc 17, 2006 21:08

Message le Lun Jan 28, 2008 16:04

finstreet a écrit:le . peut etre aussi avant le @ ... c génant

la ligne que j'ai donné marche car strrpos recherche à partir de la fin de la chaine. Pour capturer le . aussi il fait enlever le "+ 1"


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3324
Inscription: Mar Nov 16, 2004 18:27

Message le Mar Jan 29, 2008 1:20

oui c'est vrai, ta fonction marche trés bien aussi et au passage, ca va te faire plaisir, ton code ira certainement 2 fois plus vite que mon mien.

Par contre, si je peux ?

des que l'on va aller chercher des extentions doubles du genre .fr.tc; fr.nr;xdir.fr... il va bien falloir prendre un regex, car si on cherche a pousser des caractereres avec des str_, cette fois ci c'est le PCRE qui ira 10 fois plus vite en temps machine avec sa seule ligne de code.

voila voila, bonne journée Dude


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités