Switch language

wpseek.com
A WordPress-centric search engine for devs and theme authors




sanitize_email [ WordPress Function ]

sanitize_email ( $email )
Parameters:
  • (string) $email Email address to filter.
Returns:
  • (string) Filtered email address.
Defined at:



Strips out all characters that are not allowable in an email.

Source


<?php
function sanitize_email$email ) {
    
// Test for the minimum length the email can be
    
if ( strlen$email ) < ) {
        return 
apply_filters'sanitize_email'''$email'email_too_short' );
    }

    
// Test for an @ character after the first position
    
if ( strpos$email'@') === false ) {
        return 
apply_filters'sanitize_email'''$email'email_no_at' );
    }

    
// Split out the local and domain parts
    
list( $local$domain ) = explode'@'$email);

    
// LOCAL PART
    // Test for invalid characters
    
$local preg_replace'/[^a-zA-Z0-9!#$%&\'*+\/=?^_`{|}~\.-]/'''$local );
    if ( 
'' === $local ) {
        return 
apply_filters'sanitize_email'''$email'local_invalid_chars' );
    }

    
// DOMAIN PART
    // Test for sequences of periods
    
$domain preg_replace'/\.{2,}/'''$domain );
    if ( 
'' === $domain ) {
        return 
apply_filters'sanitize_email'''$email'domain_period_sequence' );
    }

    
// Test for leading and trailing periods and whitespace
    
$domain trim$domain" \t\n\r\0\x0B." );
    if ( 
'' === $domain ) {
        return 
apply_filters'sanitize_email'''$email'domain_period_limits' );
    }

    
// Split the domain into subs
    
$subs explode'.'$domain );

    
// Assume the domain will have at least two subs
    
if ( count$subs ) ) {
        return 
apply_filters'sanitize_email'''$email'domain_no_periods' );
    }

    
// Create an array that will contain valid subs
    
$new_subs = array();

    
// Loop through each sub
    
foreach ( $subs as $sub ) {
        
// Test for leading and trailing hyphens
        
$sub trim$sub" \t\n\r\0\x0B-" );

        
// Test for invalid characters
        
$sub preg_replace'/[^a-z0-9-]+/i'''$sub );

        
// If there's anything left, add it to the valid subs
        
if ( '' !== $sub ) {
            
$new_subs[] = $sub;
        }
    }

    
// If there aren't 2 or more valid subs
    
if ( count$new_subs ) ) {
        return 
apply_filters'sanitize_email'''$email'domain_no_valid_subs' );
    }

    
// Join valid subs into the new domain
    
$domain join'.'$new_subs );

    
// Put the email back together
    
$email $local '@' $domain;

    
// Congratulations your email made it!
    
return apply_filters'sanitize_email'$email$emailnull );
}
?>

Examples [ wp-snippets.com ]

Top Google zoekresultaten

Meer ...

0 User Note(s)

Nog geen één. Wees de eerste!

Nieuw toevoegen ...



HTML5 Powered with CSS3 / Styling, Performance & Integration, and Semantics