簡體   English   中英

PHP erigi:已棄用(電子郵件驗證)

[英]PHP erigi : Depreciated (e-mail validation)

由於erigi()在PHP 5中已棄用,並且我需要驗證電子郵件id,因此應使用哪個函數...? 此外,請提供電子郵件驗證的格式,例如:

<?php
function checkEmail($email) 
{
   if(eregi("^[a-zA-Z0-9_]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$]", $email)) 
   {
      return FALSE;
   }

   list($Username, $Domain) = split("@",$email);

   if(getmxrr($Domain, $MXHost)) 
   {
      return TRUE;
   }
   else 
   {
      if(fsockopen($Domain, 25, $errno, $errstr, 30)) 
      {
         return TRUE; 
      }
      else 
      {
         return FALSE; 
      }
   }
}
?>

對於php 5.2: http : //php.net/manual/en/function.filter-var.php

$result = filter_var($email , FILTER_VALIDATE_EMAIL);

http://pl.php.net/manual/en/function.preg-match.php以獲取任何正則表達式。

請改用filter_var PHP函數:

if (filter_var($email, FILTER_VALIDATE_EMAIL)) {

}

或者,甚至更好的是,使用符合RFC的電子郵件地址驗證器。 由於沒有多少正則表達式會包含所有可能的有效電子郵件。

帶有過濾器擴展的示例。

<?php
function is_valid_email($email)
{
    return filter_var($email, FILTER_VALIDATE_EMAIL) !== false;
}

var_dump(is_valid_email('test@example.com'));
var_dump(is_valid_email('foobar'));
var_dump(is_valid_email('test+foo@example.com.com'));

[~]> php x.php 
bool(true)
bool(false)
bool(true)

然后,您可以將其與已經擁有的進一步驗證結合起來。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM