sanitize_email

Definition:
function sanitize_email( $email ) {}

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

Parameters

  • string $email: Email address to filter.

Return values

returns:Filtered email address.

Defined filters

  • sanitize_email
    apply_filters( 'sanitize_email', '', $email, 'email_too_short' )
  • sanitize_email
    apply_filters( 'sanitize_email', '', $email, 'email_no_at' )
  • sanitize_email
    apply_filters( 'sanitize_email', '', $email, 'local_invalid_chars' )
  • sanitize_email
    apply_filters( 'sanitize_email', '', $email, 'domain_period_sequence' )
  • sanitize_email
    apply_filters( 'sanitize_email', '', $email, 'domain_period_limits' )
  • sanitize_email
    apply_filters( 'sanitize_email', '', $email, 'domain_no_periods' )
  • sanitize_email
    apply_filters( 'sanitize_email', '', $email, 'domain_no_valid_subs' )
  • sanitize_email
    apply_filters( 'sanitize_email', $email, $email, null )

Source code

function sanitize_email( $email ) {

	// Test for the minimum length the email can be

	if ( strlen( $email ) < 3 ) {

		return apply_filters( 'sanitize_email', '', $email, 'email_too_short' );

	}



	// Test for an @ character after the first position

	if ( strpos( $email, '@', 1 ) === false ) {

		return apply_filters( 'sanitize_email', '', $email, 'email_no_at' );

	}



	// Split out the local and domain parts

	list( $local, $domain ) = explode( '@', $email, 2 );



	// 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 ( 2 > 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 ( 2 > 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, $email, null );

}

2769

sanitize_comment_cookies

Definition:
function sanitize_comment_cookies() {}

Sanitizes the cookies sent to the user already.
Will only do anything if the cookies have already been created for the user. Mostly used after cookies had been sent to use elsewhere.

Defined filters

  • pre_comment_author_name
    apply_filters('pre_comment_author_name', $_COOKIE['comment_author_'.COOKIEHASH])
  • pre_comment_author_email
    apply_filters('pre_comment_author_email', $_COOKIE['comment_author_email_'.COOKIEHASH])
  • pre_comment_author_url
    apply_filters('pre_comment_author_url', $_COOKIE['comment_author_url_'.COOKIEHASH])

Source code

function sanitize_comment_cookies() {

	if ( isset($_COOKIE['comment_author_'.COOKIEHASH]) ) {

		$comment_author = apply_filters('pre_comment_author_name', $_COOKIE['comment_author_'.COOKIEHASH]);

		$comment_author = stripslashes($comment_author);

		$comment_author = esc_attr($comment_author);

		$_COOKIE['comment_author_'.COOKIEHASH] = $comment_author;

	}



	if ( isset($_COOKIE['comment_author_email_'.COOKIEHASH]) ) {

		$comment_author_email = apply_filters('pre_comment_author_email', $_COOKIE['comment_author_email_'.COOKIEHASH]);

		$comment_author_email = stripslashes($comment_author_email);

		$comment_author_email = esc_attr($comment_author_email);

		$_COOKIE['comment_author_email_'.COOKIEHASH] = $comment_author_email;

	}



	if ( isset($_COOKIE['comment_author_url_'.COOKIEHASH]) ) {

		$comment_author_url = apply_filters('pre_comment_author_url', $_COOKIE['comment_author_url_'.COOKIEHASH]);

		$comment_author_url = stripslashes($comment_author_url);

		$_COOKIE['comment_author_url_'.COOKIEHASH] = $comment_author_url;

	}

}

2767

sanitize_category_field

Definition:
function sanitize_category_field( $field, $value, $cat_id, $context ) {}

Sanitizes data in single category key field.

Parameters

  • string $field: Category key to sanitize
  • mixed $value: Category value to sanitize
  • int $cat_id: Category ID
  • string $context: What filter to use, ‘raw’, ‘display’, etc.

Return values

returns:Same type as $value after $value has been sanitized.

Source code

function sanitize_category_field( $field, $value, $cat_id, $context ) {

	return sanitize_term_field( $field, $value, $cat_id, 'category', $context );

}

2765

sanitize_category

Definition:
function sanitize_category( $category, $context = 'display' ) {}

Sanitizes category data based on context.

Parameters

  • object|array $category: Category data
  • string $context: Optional. Default is ‘display’.

Return values

returns:Same type as $category with sanitized data for safe use.

Source code

function sanitize_category( $category, $context = 'display' ) {

	return sanitize_term( $category, 'category', $context );

}

2763

sanitize_bookmark_field

Definition:
function sanitize_bookmark_field($field, $value, $bookmark_id, $context) {}

Sanitizes a bookmark field
Sanitizes the bookmark fields based on what the field name is. If the field has a strict value set, then it will be tested for that, else a more generic filtering is applied. After the more strict filter is applied, if the $context is ‘raw’ then the value is immediately return.

Parameters

  • string $field: The bookmark field
  • mixed $value: The bookmark field value
  • int $bookmark_id: Bookmark ID
  • string $context: How to filter the field value. Either ‘raw’, ‘edit’, ‘attribute’, ‘js’, ‘db’, or ‘display’

Return values

returns:The filtered value

Defined filters

  • edit_$field
    apply_filters("edit_$field", $value, $bookmark_id)
  • pre_$field
    apply_filters("pre_$field", $value)
  • $field
    apply_filters($field, $value, $bookmark_id, $context)

Source code

function sanitize_bookmark_field($field, $value, $bookmark_id, $context) {

	switch ( $field ) {

	case 'link_id' : // ints

	case 'link_rating' :

		$value = (int) $value;

		break;

	case 'link_category' : // array( ints )

		$value = array_map('absint', (array) $value);

		// We return here so that the categories aren't filtered.

		// The 'link_category' filter is for the name of a link category, not an array of a link's link categories

		return $value;

		break;

	case 'link_visible' : // bool stored as Y|N

		$value = preg_replace('/[^YNyn]/', '', $value);

		break;

	case 'link_target' : // "enum"

		$targets = array('_top', '_blank');

		if ( ! in_array($value, $targets) )

			$value = '';

		break;

	}



	if ( 'raw' == $context )

		return $value;



	if ( 'edit' == $context ) {

		$value = apply_filters("edit_$field", $value, $bookmark_id);



		if ( 'link_notes' == $field ) {

			$value = esc_html( $value ); // textarea_escaped

		} else {

			$value = esc_attr($value);

		}

	} else if ( 'db' == $context ) {

		$value = apply_filters("pre_$field", $value);

	} else {

		// Use display filters by default.

		$value = apply_filters($field, $value, $bookmark_id, $context);



		if ( 'attribute' == $context )

			$value = esc_attr($value);

		else if ( 'js' == $context )

			$value = esc_js($value);

	}



	return $value;

}

2761