sanitize_text_field()
Очищає переданий рядок, залишаючи чистий текст: без HTML тегів, переносів рядків і т.д.
Цією функцією прийнято очищати рядки, що зберігаються в базу даних (передаються з поля input), іноді при отриманні з БД.
Що робить функція:
- Перевіряє помилки у кодуванні UTF-8.
- Конвертує одиночний знак
<
у HTML суть. - Видалять усі теги.
- Видаляє перенесення рядків ( rn ), табуляцію ( t ) та невидимі символи пропуску.
- Видаляє прогалини на кінцях рядка – trim() .
- Замінює кілька прогалин на одні.
- Видаляє октети:
%[a-f0-9]{2}
.
Чим відрізняються esc_html() і sanitize_text_field():
esc_html() менш жорстка — вона лише переводить HTML символи та сутності у видимий текст, те щоб браузер не обробляв текст як HTML, тобто. зберігає всі дані, але змінять їх для виведення на екран.
sanitize_text_field() – видаляє всі HTML символи, переноси рядків, табуляції та HTML сутності. Функція залишає чистий текст, тобто. функція робить все, щоб значення поля input було безпечно для збереження.
wc_clean()
(швидкість світла) | 50000 разів – 0.20 сек
(дуже швидко) |
PHP 7.0.19, WP 5.0.2
Хуки з функції
Повертає
Строку
. Очищений рядок.
Використання
sanitize_text_field( $str );
-
$str
(рядок) - Рядок, який потрібно очистити.
Приклади
#1 Як працює функція
sanitize_text_field( 'Перевіримо, як</em> очищається рядок <br>. '); // 'Перевіримо, як очищається рядок .' sanitize_text_field( 'Юнікод символи ???? ????'); // Юнікод символи ???? ???? sanitize_text_field( 'http://example.com/foo.php#bar'); // 'http://example.com/foo.php#bar' sanitize_text_field( 'foo <strong> bar' ); // foo bar sanitize_text_field( 123 ); // string(3) "123" sanitize_text_field( 'http://test.ru/%D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%82/'); // http://test.ru// sanitize_text_field( '{ "Vlad Mir": "https://profiles.wordpress.org/sephp", "Kama": "https://wp-doc.com"}'); // { "Vlad Mir": "https://profiles.wordpress.org/sephp", "Kama": "https://wp-doc.com"}
#2 Використання функції input
Цей приклад показує, як використовувати функцію в тегу INPUT. Припустимо, що ми приймаємо $_POST запит зі значенням поля:
<input type="text" name="str" value="<?php echo esc_attr( sanitize_text_field( $_POST['str'] ) ) ?>" />
нотатки
- Дивіться: sanitize_textarea_field()
- Дивіться: wp_check_invalid_utf8()
- Дивіться: wp_strip_all_tags()
список змін
З версії 2.9.0 | Введено. |
Код sanitize_text_field() sanitize text field WP 6.0.2
function sanitize_text_field( $str ) { $filtered = _sanitize_text_fields( $str, false ); /** * Filters a sanitized text field string. * * @ Since 2.9.0 * * @param string $filtered The sanitized string. * @param string $str string prior to being sanitized. */ return apply_filters( 'sanitize_text_field', $filtered, $str ); }