sanitize_text_field() WP 2.9.0

Очищає переданий рядок, залишаючи чистий текст: без HTML тегів, переносів рядків і т.д.

Цією функцією прийнято очищати рядки, що зберігаються в базу даних (передаються з поля input), іноді при отриманні з БД.

Що робить функція:
  1. Перевіряє помилки у кодуванні UTF-8.
  2. Конвертує одиночний знак <у HTML суть.
  3. Видалять усі теги.
  4. Видаляє перенесення рядків ( rn ), табуляцію ( t ) та невидимі символи пропуску.
  5. Видаляє прогалини на кінцях рядка – trim() .
  6. Замінює кілька прогалин на одні.
  7. Видаляє октети: %[a-f0-9]{2}.

Чим відрізняються esc_html() і sanitize_text_field():

esc_html() менш жорстка — вона лише переводить HTML символи та сутності у видимий текст, те щоб браузер не обробляв текст як HTML, тобто. зберігає всі дані, але змінять їх для виведення на екран.

sanitize_text_field() – видаляє всі HTML символи, переноси рядків, табуляції та HTML сутності. Функція залишає чистий текст, тобто. функція робить все, щоб значення поля input було безпечно для збереження.

Основа для:
wc_clean()
1 раз – 0.000001 сек
(швидкість світла) | 50000 разів – 0.20 сек
(дуже швидко) |
PHP 7.0.19, WP 5.0.2

Хуки з функції

Повертає

Строку. Очищений рядок.

Використання

sanitize_text_field( $str );
$str
(рядок)
Рядок, який потрібно очистити.

Приклади

0

#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"}
0

#2 Використання функції input

Цей приклад показує, як використовувати функцію в тегу INPUT. Припустимо, що ми приймаємо $_POST запит зі значенням поля:

<input type="text" name="str" ​​value="<?php echo esc_attr( sanitize_text_field( $_POST['str'] ) ) ?>" />

нотатки

список змін

З версії 2.9.0Введено.

Код 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 );
}