PHP self-with method to verify the existence of _php tips

Source: Internet
Author: User
Tags php email mx record

PHP Check the mailbox address of a lot of more commonly used to write their own regular, but is a lot of trouble, I have the method of PHP with a check.

Filter_var

Filter_var is a built-in variable filtering method in PHP that provides a number of useful filters that can be used to validate integers, floating-point numbers, mailboxes, URLs, MAC addresses, and so on.

Filter_var returns FALSE, indicating that the variable cannot pass through the filter, which is illegal.

$email = "lastchiliarch@163.com";
 
Var_dump (Filter_var ($email, Filter_validate_email));
 
 
$email = "ASB";
Var_dump (Filter_var ($email, Filter_validate_email));
 
$email = "1@a.com";
Var_dump (Filter_var ($email, Filter_validate_email));

Output:

String (lastchiliarch@163.com)
bool (FALSE)
string (7) 1@a.com

For ASB This illegal mailbox format returned false, but for 1@a.com passed, or slightly flawed ah.

But the general is also through will think 1@a.com is a legitimate mailbox, then what method can more accurate verification?

Checkdnsrr

CHECKDNSRR is actually used to query DNS records for the specified host, which we can use to verify that the mailbox exists.

The MX record is certainly not present for 1@a.com.

$email = "lastchiliarch@163.com";
  Var_dump (CHECKDNSRR (Array_pop ("@", $email)), "MX");
  $email = "1@a.com";
  Var_dump (CHECKDNSRR (Array_pop ("@", $email)), "MX");

Output:

  BOOL (TRUE)
  bool (FALSE)

Can see, very perfect, the only drawback is too slow, after all, to do a network request. So it is not appropriate to sync to a large number of mailboxes using this approach to verify.

Filter_var+checkdnsrr

We can engage Filter_var and CHECKDNSRR to do the check, for the vast majority of illegal mailboxes will certainly be in Filter_var when the hang off, the rest of the reuse

CHECKDNSRR further judgment.

$email _arr = Array ("lastchiliarch@163.com", "1@a.com");
  foreach ($email _arr as $email) {
    if (Filter_var ($email) = False) {
      echo "invalid email: $email \ n";
      Continue;
    }
 
    if (CHECKDNSRR array_pop (Explode ("@", $email), "MX") = = False) {
      echo "invalid email: $email \ n";
      Continue
    }
  }
 

Output:

Invalid email:1@a.com

Note, however, that because only the MX record is checked, only 163.com can be judged to exist, but it cannot be explained that lastchiliarch this user is present.

To more accurately determine the existence of a mailbox, it can only be connected to the SMTP server to authenticate.

Introduced the mailbox verification, PHP's own method how to verify the mailbox, URL, IP is legitimate, the following for you to introduce:

The main use is the Filter_var function .

Grammar
Filter_var (variable, filter, options)
Variable required. Specify the variables to filter.
Filter can be selected. Specify the ID of the filter to use.
The options rule contains an array of flags/options. Check the possible flags and options for each filter.

PHP Filters

Example #1 A Filter_var () Example

<?php

var_dump (Filter_var (' bob@example.com ', filter_validate_email));

Var_dump (Filter_var (' http://example.com ', Filter_validate_url, filter_flag_path_required));

? >

The above routines will output:

String "bob@example.com"
bool (FALSE)

The above is the entire content of this article, I hope that you can do PHP email verification help.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.