sanitize_user()WP 2.0.0

Очищает имя пользователя (логин, username), удаляя небезопасные символы.

Удаляет: html теги, ноты, html сущности и другие символы не входящие в ASCII.

Основа для: validate_username()
Хуки из функции

Возвращает

Строку. Очищенное имя пользователя.

Использование

sanitize_user( $username, $strict );
$username(строка) (обязательный)
Имя пользователя, которое нужно очистить.
$strict(логический)
Если установить в true, то нестандартные символы в имени будут удалены. В именах буду доступны только символы^ a-z 0-9 _ . - @. Обратите внимание что доступен только англ. алфавит.
По умолчанию: false

Примеры

0

#1 Пример работы функции фильтрации имени пользователя:

$string = 'Leonid-{?}[]<tag>рус_ё`@';
echo sanitize_user( $string ); // вернет: Leonid-{?}[]рус_ё`@

echo sanitize_user( $string, 1 ); // вернет: Leonid-_

Список изменений

С версии 2.0.0 Введена.

Код sanitize_user() WP 6.4.3

function sanitize_user( $username, $strict = false ) {
	$raw_username = $username;
	$username     = wp_strip_all_tags( $username );
	$username     = remove_accents( $username );
	// Remove percent-encoded characters.
	$username = preg_replace( '|%([a-fA-F0-9][a-fA-F0-9])|', '', $username );
	// Remove HTML entities.
	$username = preg_replace( '/&.+?;/', '', $username );

	// If strict, reduce to ASCII for max portability.
	if ( $strict ) {
		$username = preg_replace( '|[^a-z0-9 _.\-@]|i', '', $username );
	}

	$username = trim( $username );
	// Consolidate contiguous whitespace.
	$username = preg_replace( '|\s+|', ' ', $username );

	/**
	 * Filters a sanitized username string.
	 *
	 * @since 2.0.1
	 *
	 * @param string $username     Sanitized username.
	 * @param string $raw_username The username prior to sanitization.
	 * @param bool   $strict       Whether to limit the sanitization to specific characters.
	 */
	return apply_filters( 'sanitize_user', $username, $raw_username, $strict );
}