函数原型:
sanitize_email( string $email ): string
删除电子邮件中不允许使用的所有字符。
参数说明:
$email 要处理的邮件地址
返回值:
处理后的邮件地址
函数源码:
function sanitize_email( $email ) {
// Test for the minimum length the email can be.
if ( strlen( $email ) < 6 ) {
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 = preg_replace( '/[^a-zA-Z0-9!#$%&\'*+\/=?^_`{|}~\.-]/', '', $local );
if ( '' === $local ) {
return apply_filters( 'sanitize_email', '', $email, 'local_invalid_chars' );
}
$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 = implode( '.', $new_subs );
// Put the email back together.
$sanitized_email = $local . '@' . $domain;
// Congratulations, your email made it!
return apply_filters( 'sanitize_email', $sanitized_email, $email, null );
}
包含钩子:
apply_filters( ‘sanitize_email’, string $sanitized_email, string $email, string|null $message )
使用举例:
$sanitized_email = sanitize_email(' admin@example.com!');
echo $sanitized_email; // will output: 'admin@example.com'
-
WP Multilang WordPress翻译插件WP Multilang插件的主要功能是提供多语言支持,使用户能够创建多语言版本的网站,满足不同语言用户的需求。
-
Post Type Switcher将 WordPress文章从一个类型转换到另一个类型Post Type Switcher是一个WordPress插件,用于将文章从一个类型转换到另一个类型,包括自定义文章类型。安装并启用该插件后,在编辑文章时,会在发布面板中增加Post Type选项,用户可以选择要转换到的文章类型并更新文章。此外,插件也支持在后台所有文章页面批量更改文章类型。
-
WordPress公司官网主题在众多的WordPress企业官网主题中,追格公司推出了多款关于WordPress企业官网主题作品。我们之前已经分享过一些关于追格的企业官网主题,包括收费和免费版本,这些主题都因其独特的设计和出色的功能而深受用户喜爱。
-
Fluent Forms - WordPress表单插件Fluent Forms是一款功能强大且易于使用的WordPress表单插件,适合各种规模的网站使用。无论是简单的联系表单还是复杂的用户调查表,Fluent Forms都能满足用户的需求。
-
WP-Ban WordPress禁止指定IP访问网站的插件WP-Ban是一款专为WordPress网站设计的安全插件,其主要功能是屏蔽恶意或不受欢迎的IP地址,以增强网站的安全性。
-
WPvivid插件:WordPress网站备份与还原的解决方案WPvivid插件是一款功能强大的WordPress插件,专为网站数据备份、还原和搬家设计。它支持高度自定义的备份选项,允许用户选择备份整个站点(包括数据库和文件)、仅文件或仅数据库。
暂无评论,抢个沙发...