PHP 使用PHP来检测给定的字符串是否是正确的电子邮件地址

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP 使用PHP来检测给定的字符串是否是正确的电子邮件地址相关的知识,希望对你有一定的参考价值。

function is_proper_email($email) {
  // First, we check that there's one @ symbol, and that the lengths are right
  if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email)) {
    // Email invalid because wrong number of characters in one section, or wrong number of @ symbols.
    return false;
  }
  // Split it into sections to make life easier
  $email_array = explode("@", $email);
  $local_array = explode(".", $email_array[0]);
  for ($i = 0; $i < sizeof($local_array); $i++) {
     if (!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$", $local_array[$i])) {
      return false;
    }
  }  
  if (!ereg("^\[?[0-9\.]+\]?$", $email_array[1])) { // Check if domain is IP. If not, it should be valid domain name
    $domain_array = explode(".", $email_array[1]);
    if (sizeof($domain_array) < 2) {
        return false; // Not enough parts to domain
    }
    for ($i = 0; $i < sizeof($domain_array); $i++) {
      if (!ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$", $domain_array[$i])) {
        return false;
      }
    }
  }
  return true;
}

//usage
// $email_result = is_proper_email($email_string);
// $email_result will be either true or false

以上是关于PHP 使用PHP来检测给定的字符串是否是正确的电子邮件地址的主要内容,如果未能解决你的问题,请参考以下文章

PHP 判断数据类型

php 验证(检查)日期格式是否正确

php命令行工具检测php文件语法格式是不是正确的方法是

php-fpm 配置文件检测

在php中检测一个变量是不是设置需要使用啥函数

正则表达式检测无效的 UTF-8 字符串