Maison développement back-end tutoriel php 全面測試email的有效性_PHP

全面測試email的有效性_PHP

Jun 01, 2016 pm 12:29 PM
connection h if return complet efficacité

一般我們常希望拜訪你的網站的朋友能留下Email
但是很多人都會隨便打,造成管理員的困擾,
以下這個class可以線上檢查Email是否是有效的Email(存不存在)


class CEmail {
var $email_regular_expression="^([a-z0-9_]|\-|\.) @(([a-z0-9_]|\-) \.) [a-z]{2,4}$";
var $timeout=0;
var $localhost="";
var $localuser="";

Function GetLine($connection)
{
for($line="";;)
{
if(feof($connection))
return(0);
$line.=fgets($connection,100);
$length=strlen($line);
if($length>=2
&& substr($line,$length-2,2)=="rn")
return(substr($line,0,$length-2));
}
}

Function PutLine($connection,$line)
{
return(fputs($connection,"$linern"));
}

Function VerifyRule($email)
{
return(eregi($this->email_regular_expression,$email)!=0);
}

Function ValidateEmailHost($email,$hosts=0)
{
if(!$this->VerifyRule($email))
return(0);
$user=strtok($email,"@");
$domain=strtok("");
if(GetMXRR($domain,&$hosts,&$weights))
{
$mxhosts=array();
for($host=0;$host $mxhosts[$weights[$host]]=$hosts[$host];
KSort($mxhosts);
for(Reset($mxhosts),$host=0;$host $hosts[$host]=$mxhosts[Key($mxhosts)];
}
else
{
$hosts=array();
if(strcmp(@gethostbyname($domain),$domain)!=0)
$hosts[]=$domain;
}
return(count($hosts)!=0);
}

Function VerifyResultLines($connection,$code)
{
while(($line=$this->GetLine($connection)))
{
if(!strcmp(strtok($line," "),$code))
return(1);
if(strcmp(strtok($line,"-"),$code))
return(0);
}
return(-1);
}

Function VerifyOnline($email)
{
if(!$this->ValidateEmailHost($email,&$hosts))
return(0);
if(!strcmp($localhost=$this->localhost,"")
&& !strcmp($localhost=getenv("SERVER_NAME"),"")
&& !strcmp($localhost=getenv("HOST"),""))
$localhost="localhost";
if(!strcmp($localuser=$this->localuser,"")
&& !strcmp($localuser=getenv("USERNAME"),"")
&& !strcmp($localuser=getenv("USER"),""))
$localuser="root";
for($host=0;$host {
if(($connection=($this->timeout ? fsockopen($hosts[$host],25,&$errno,&$error,$this->timeout) : fsockopen($hosts[$host],25))))
{
if($this->VerifyResultLines($connection,"220")>0
&& $this->PutLine($connection,"HELO $localhost")
&& $this->VerifyResultLines($connection,"250")>0
&& $this->PutLine($connection,"MAIL FROM: ")
&& $this->VerifyResultLines($connection,"250")>0
&& $this->PutLine($connection,"RCPT TO: ")
&& ($result=$this->VerifyResultLines($connection,"250"))>=0)
{
fclose($connection);
return($result);
}
fclose($connection);
}
}
return(-1);
}

function Verify($email,$type=0) {
if($type==0) return $this->VerifyRule($email) ;
else return $this->VerifyOnline($email) ;

}

};


?>


用法:
$m=new CEmail;
//僅檢查語法
if($m->Verify("jerry@mail.jerry.com.tw",0)) echo "有效";
else echo "無效";

//線上檢查是否真的有該Email
if($m->Verify("jerry@mail.jerry.com.tw",1)) echo "有效";
else echo "無效";

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment écrire if en langage C pour juger plusieurs conditions Comment écrire if en langage C pour juger plusieurs conditions Mar 25, 2024 pm 03:24 PM

En langage C, l'instruction if est généralement utilisée pour exécuter un bloc de code spécifique basé sur une seule condition. Cependant, plusieurs conditions peuvent être combinées pour effectuer une détermination à l'aide d'opérateurs logiques tels que &&, || et !. Y compris l'utilisation d'un ET logique (&&) pour juger plusieurs conditions, l'utilisation d'un OU logique (||) pour juger au moins une condition, l'utilisation d'un NON logique (!) pour juger de la négation d'une seule condition, ainsi que l'imbrication d'instructions if et l'utilisation de parenthèses. pour clarifier la priorité.

Explication détaillée de l'utilisation de return en langage C Explication détaillée de l'utilisation de return en langage C Oct 07, 2023 am 10:58 AM

L'utilisation de return en langage C est la suivante : 1. Pour les fonctions dont le type de valeur de retour est void, vous pouvez utiliser l'instruction return pour terminer l'exécution de la fonction plus tôt. 2. Pour les fonctions dont le type de valeur de retour n'est pas void, la fonction de ; l'instruction return sert à terminer l'exécution de la fonction.Le résultat est renvoyé à l'appelant ;3. Terminer l'exécution de la fonction plus tôt que prévu.À l'intérieur de la fonction, nous pouvons utiliser l'instruction return pour terminer l'exécution de la fonction plus tôt. si la fonction ne renvoie pas de valeur.

Que signifie CONNECTION_REFUSED ? Que signifie CONNECTION_REFUSED ? Jul 31, 2023 pm 02:48 PM

CONNECTION_REFUSED est une erreur de connexion réseau qui se produit généralement lors de la tentative de connexion à un serveur distant. Lorsqu'un appareil client tente d'établir une connexion réseau avec un serveur et que le serveur rejette la demande de connexion, une erreur CONNECTION_REFUSED est renvoyée. Les raisons courantes incluent : le serveur n'est pas démarré, le serveur ne peut pas accepter plus de demandes de connexion, le pare-feu du serveur bloque la connexion, etc.

Comment résoudre l'erreur de connexion Comment résoudre l'erreur de connexion Nov 07, 2023 am 10:44 AM

Solution : 1. Vérifiez la connexion réseau ; 2. Vérifiez l'état du serveur ; 3. Effacez le cache et les cookies ; 4. Vérifiez les paramètres du pare-feu et du logiciel de sécurité ; 5. Essayez d'utiliser d'autres réseaux, etc.

Quel est l'ordre d'exécution des instructions return et enfin en Java ? Quel est l'ordre d'exécution des instructions return et enfin en Java ? Apr 25, 2023 pm 07:55 PM

Code source : publicclassReturnFinallyDemo{publicstaticvoidmain(String[]args){System.out.println(case1());}publicstaticintcase1(){intx;try{x=1;returnx;}finally{x=3;}}}# Sortie La sortie du code ci-dessus peut simplement conclure : return est exécuté avant finalement. Jetons un coup d'œil à ce qui se passe au niveau du bytecode. Ce qui suit intercepte une partie du bytecode de la méthode case1 et compare le code source pour annoter la signification de chaque instruction dans

Comment Uniapp réalise une conversion rapide entre les mini-programmes et H5 Comment Uniapp réalise une conversion rapide entre les mini-programmes et H5 Oct 20, 2023 pm 02:12 PM

La manière dont Uniapp peut réaliser une conversion rapide entre les mini-programmes et le H5 nécessite des exemples de code spécifiques. Ces dernières années, avec le développement de l'Internet mobile et la popularité des smartphones, les mini-programmes et le H5 sont devenus des formulaires de candidature indispensables. En tant que cadre de développement multiplateforme, uniapp peut réaliser rapidement la conversion entre les petits programmes et H5 sur la base d'un ensemble de codes, améliorant considérablement l'efficacité du développement. Cet article présentera comment Uniapp peut réaliser une conversion rapide entre les mini-programmes et H5, et donnera des exemples de code spécifiques. 1. Introduction à uniapp unia

Avertissement PHP : mysqli_connect() : (HY000/2002) : Solution de connexion refusée Avertissement PHP : mysqli_connect() : (HY000/2002) : Solution de connexion refusée Jun 23, 2023 am 08:54 AM

Si vous rencontrez le message d'erreur suivant lorsque vous utilisez PHP pour vous connecter à une base de données MySQL : PHPWarning:mysqli_connect():(HY000/2002):Connectionrefused, vous pouvez essayer de résoudre ce problème en suivant les étapes ci-dessous. Pour confirmer si le service MySQL fonctionne normalement, vous devez d'abord vérifier si le service MySQL fonctionne normalement. Si le service ne fonctionne pas ou ne démarre pas, cela peut provoquer une erreur de refus de connexion. peux-tu

Comment utiliser les instructions if imbriquées dans les procédures stockées MySQL Comment utiliser les instructions if imbriquées dans les procédures stockées MySQL May 26, 2023 pm 12:07 PM

1. Introduction à l'instruction if L'instruction if est une instruction de structure de branchement qui effectue différentes opérations en fonction des conditions. L'instruction if se compose généralement d'une expression conditionnelle et d'une ou plusieurs instructions. Si la valeur de l'expression conditionnelle est vraie, alors les instructions de l'instruction if sont exécutées, sinon le bloc d'instruction if est ignoré ; La syntaxe de l'instruction if est la suivante : if(condition)thenstatement;elsestation;endif; où condition est l'expression conditionnelle et instruction est l'instruction SQL qui doit être exécutée. 2. Introduction aux instructions if imbriquées Une instruction if imbriquée fait référence à l'imbrication d'un ou plusieurs blocs d'instructions if dans un bloc d'instructions if pour effectuer différentes opérations basées sur différentes conditions.

See all articles