list of sanitize function in wordpress

The sanitize php function works with two different function in wordpress they are filter and sanitize email.


apply_filters
function apply_filters( $tag, $value ) {
global $wp_filter, $merged_filters, $wp_current_filter;

$args = array();

// Do 'all' actions first
if ( isset($wp_filter['all']) ) {
$wp_current_filter[] = $tag;
$args = func_get_args();
_wp_call_all_hook($args);
}

if ( !isset($wp_filter[$tag]) ) {
if ( isset($wp_filter['all']) )
array_pop($wp_current_filter);
return $value;
}

if ( !isset($wp_filter['all']) )
$wp_current_filter[] = $tag;

// Sort
if ( !isset( $merged_filters[ $tag ] ) ) {
ksort($wp_filter[$tag]);
$merged_filters[ $tag ] = true;
}

reset( $wp_filter[ $tag ] );

if ( empty($args) )
$args = func_get_args();

do {
foreach( (array) current($wp_filter[$tag]) as $the_ )
if ( !is_null($the_['function']) ){
$args[1] = $value;
$value = call_user_func_array($the_['function'], array_slice($args, 1, (int) $the_['accepted_args']));
}

} while ( next($wp_filter[$tag]) !== false );

array_pop( $wp_current_filter );

return $value;
}
sanitize_email
function sanitize_email( $email ) {
 // Test for the minimum length the email can be
 if ( strlen( $email ) < 3 ) {
  /**
   * Filter a sanitized email address.
   *
   * This filter is evaluated under several contexts, including 'email_too_short',
   * 'email_no_at', 'local_invalid_chars', 'domain_period_sequence', 'domain_period_limits',
   * 'domain_no_periods', 'domain_no_valid_subs', or no context.
   *
   * @since 2.8.0
   *
   * @param string $email   The sanitized email address.
   * @param string $email   The email address, as provided to sanitize_email().
   * @param string $message A message to pass to the user.
   */
  return apply_filters( 'sanitize_email', '', $email, 'email_too_short' );
 }

 // Test for an @ character after the first position
 if ( strpos( $email, '@', 1 ) === false ) {
  /** This filter is documented in wp-includes/formatting.php */
  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 ) {
  /** This filter is documented in wp-includes/formatting.php */
  return apply_filters( 'sanitize_email', '', $email, 'local_invalid_chars' );
 }

 // DOMAIN PART
 // Test for sequences of periods
 $domain = preg_replace( '/\.{2,}/', '', $domain );
 if ( '' === $domain ) {
  /** This filter is documented in wp-includes/formatting.php */
  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 ) {
  /** This filter is documented in wp-includes/formatting.php */
  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 ) ) {
  /** This filter is documented in wp-includes/formatting.php */
  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 ) ) {
  /** This filter is documented in wp-includes/formatting.php */
  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!
 /** This filter is documented in wp-includes/formatting.php */
 return apply_filters( 'sanitize_email', $email, $email, null );
}

Comments

Popular posts from this blog

create pdf by using javascript

yii framework simple shopping cart tutorial for beginners

yii2 arrayhelper::map vs array_map