# Функция sanitize_user() │ WP 2.0.0
Функция sanitize_user() предназначена для очистки имени пользователя, удаляя небезопасные символы.
## Описание
Функция удаляет теги, символы в формате percent-encoding (например, %20 вместо пробела), HTML-сущности, а если включен строгий режим, то оставляет только буквы и цифры, а также символы _, пробелы, ., - и @. После очистки имя пользователя передается в фильтр sanitize_user, который позволяет дополнительно обработать его.
### Используется в
- validate_username()
## Хуки из функции
- sanitize_user
## Возвращает
Функцию возвращает строку — очищенное имя пользователя после фильтров.
## Использование
```php
sanitize_user( $username, $strict );
$username(string, обязательный) — имя пользователя, которое нужно очистить.$strict(true|false) — если установлено вtrue, ограничивает использование символов в$username. По умолчанию:false.
Примеры
Пример 1: Как работает фильтрация имени пользователя
$string = ' Leonid-{?}[]rus_yo`@';
echo sanitize_user( $string ); // Вывод: Leonid-rus_yo@
echo sanitize_user( $string, true ); // Вывод: Leonid_rus_yo@
Изменения
- С версии 2.0.0 — Функция была введена.
Код функции sanitize_user() │ WP 6.7.2
Функция находится в файле wp-includes/formatting.php.
function sanitize_user( $username, $strict = false ) {
$raw_username = $username;
$username = wp_strip_all_tags( $username );
$username = remove_accents( $username );
// Удаление символов в формате percent-encoding
$username = preg_replace( '|%([a-fA-F0-9][a-fA-F0-9])|', '', $username );
// Удаление HTML-сущностей
$username = preg_replace( '/&.+?;/', '', $username );
// Если установлен строгий режим, оставить только ASCII символы
if ( $strict ) {
$username = preg_replace( '|[^a-z0-9 _.-@]|i', '', $username );
}
$username = trim( $username );
// Удаляем лишние пробелы
$username = preg_replace( '|s+|', ' ', $username );
/**
* Фильтрует строку с очищенным именем пользователя.
*
* @since 2.0.1
*
* @param string $username Очищенное имя пользователя.
* @param string $raw_username Имя пользователя перед очисткой.
* @param bool $strict Указывает, нужно ли ограничивать очистку определёнными символами.
*/
return apply_filters( 'sanitize_user', $username, $raw_username, $strict );
}
Похожие функции
sanitize_email()sanitize_file_name()sanitize_html_class()sanitize_key()sanitize_meta()sanitize_mime_type()sanitize_option()sanitize_post()sanitize_post_field()sanitize_sql_orderby()sanitize_term()sanitize_term_field()sanitize_text_field()sanitize_textarea_field()sanitize_title()sanitize_title_for_query()sanitize_title_with_dashes()sanitize_url()wc_clean()wp_check_invalid_utf8()
Другие функции
auth_redirect()count_many_users_posts()count_user_posts()count_users()email_exists()get_author_posts_url()get_current_user_id()get_edit_user_link()get_editable_roles()get_the_author()get_the_author_link()get_the_author_posts_link()get_the_modified_author()get_user_by()get_userdata()get_users()is_multi_author()the_author_link()the_author_posts()the_author_posts_link()the_modified_author()username_exists()validate_username()wp_dropdown_roles()wp_dropdown_users()wp_get_current_user()wp_list_authors()wp_list_users()wp_send_new_user_notifications()wp_set_current_user()