Функция sanitize_text_field()
предназначена для очистки строк, получаемых от пользователя или из базы данных. Она удаляет все нежелательные символы, теги и HTML-сущности, оставляя только чистый текст. Эта функция полезна для подготовки данных перед их сохранением в базу данных, чтобы гарантировать безопасность и целостность информации.
sanitize_text_field( string $str ): string
Параметры
- $str (строка, обязательный) — Строка, которую необходимо очистить.
Возвращаемое значение
Возвращает очищенную строку без HTML-тегов, пробелов и других нежелательных символов.
Основные функции
- Проверяет корректность кодировки UTF-8.
- Конвертирует одиночный символ
<
в HTML-сущность<
. - Удаляет все HTML-теги.
- Убирает переносы строк, табуляцию и лишние пробелы.
- Стрипует процентно-кодированные символы.
Важно знать
Функция sanitize_text_field()
не предназначена для защиты от SQL-инъекций. Для безопасного выполнения запросов к базе данных рекомендуется использовать метод wpdb::prepare()
.
Пример 1: Очистка строки с HTML-тегами
$input_string = "Заголовок <h1>Привет</h1>, это тестовая строка <strong>с выделением</strong>.";
$sanitized_string = sanitize_text_field($input_string);
echo $sanitized_string;
// Результат: "Заголовок Привет, это тестовая строка с выделением."
В этом примере все HTML-теги были удалены, оставив только текст.
Пример 2: Очистка строки с пробелами и переносами строк
$multiline_string = "Это первая строка.\n\nЭто вторая строка с пробелами. ";
$sanitized_multiline_string = sanitize_text_field($multiline_string);
echo $sanitized_multiline_string;
// Результат: "Это первая строка.Это вторая строка с пробелами."
Функция убирает лишние пробелы и переносы строк, что делает текст более аккуратным.
Пример 3: Обработка юникодных символов
$unicode_string = "Пример юникодных символов 😃 🐻";
$sanitized_unicode = sanitize_text_field($unicode_string);
echo $sanitized_unicode;
// Результат: "Пример юникодных символов 😃 🐻"
Функция корректно обрабатывает строки с юникодными символами, сохраняя их.
Пример 4: Очистка URL
$url_string = "http://example.com/foo.php?param=<value>";
$sanitized_url = sanitize_text_field($url_string);
echo $sanitized_url;
// Результат: "http://example.com/foo.php?param=value"
В этом случае функция убирает символы, которые могут быть вредными для URL.
Пример 5: Использование в HTML
Вот как можно использовать sanitize_text_field()
в теге <input>
при обработке данных из формы:
<input type="text" name="user_input" value="<?php echo esc_attr(sanitize_text_field($_POST['user_input'])); ?>" />
Здесь данные, полученные из формы, сначала очищаются, а затем экранируются перед выводом в HTML-атрибут.
Заключение
Функция sanitize_text_field()
является важным инструментом для обеспечения безопасности пользовательских данных в WordPress. Она эффективно очищает строки от нежелательных символов и тегов, что делает её незаменимой при работе с пользовательским вводом.