Функция esc_textarea()
в WordPress предназначена для очистки текста перед его выводом в HTML-тег <textarea>
. Эта функция перекодирует специальные символы, делая текст безопасным для отображения, и предотвращает возможные уязвимости, такие как XSS-атаки.
esc_textarea( string $text ): string
Функция принимает строку текста и возвращает её с перекодированными символами. Для очистки текста используется стандартная PHP-функция htmlspecialchars()
, что делает esc_textarea()
надежным инструментом при работе с пользовательскими данными в <textarea>
.
Параметры
$text
(строка, обязательный): Текст, который необходимо очистить и подготовить для безопасного вывода.
Возвращаемое значение
- Возвращает строку, в которой перекодированы специальные символы, такие как
<
,>
,&
,"
и'
, чтобы их можно было безопасно отобразить вtextarea
.
Простой пример перекодирования символов для <textarea>
<?php
$text = "<p>Пример текста с <strong>HTML-тегами</strong> и специальными символами: \" ' &.</p>";
echo esc_textarea($text);
?>
Результат:
<p>Пример текста с <strong>HTML-тегами</strong> и специальными символами: " ' &.</p>
В результате все теги и символы будут безопасно отображаться, а не исполняться в HTML.
Очистка пользовательского ввода перед сохранением в <textarea>
<?php
if ($_POST['user_text']) {
$user_text = esc_textarea($_POST['user_text']);
echo "<textarea name='user_text'>{$user_text}</textarea>";
}
?>
Этот пример полезен при обработке данных формы. Пользовательский ввод очищается и безопасно отображается в <textarea>
, предотвращая XSS-атаки.
Пример использования esc_textarea()
при выводе текста в админ-панели
<?php
$admin_text = "<script>alert('Вредоносный скрипт');</script>Пример текста для поля ввода";
echo "<textarea>" . esc_textarea($admin_text) . "</textarea>";
?>
Результат:
<script>alert('Вредоносный скрипт');</script>Пример текста для поля ввода
В этом случае любые вредоносные скрипты будут отображаться как текст, не угрожая безопасности.
Использование с многострочным текстом
<?php
$multiline_text = "Первая строка.\nВторая строка с символом: &.\nЗаключительная строка.";
echo "<textarea>" . esc_textarea($multiline_text) . "</textarea>";
?>
esc_textarea()
сохраняет переносы строк и символы, обеспечивая корректное отображение текста в поле textarea
.
Очистка данных перед сохранением в базе данных
<?php
$user_input = $_POST['feedback'];
$sanitized_text = esc_textarea($user_input);
// Сохранение в базе данных
$wpdb->insert('feedback_table', ['feedback_content' => $sanitized_text]);
?>
Здесь esc_textarea()
используется для очистки данных перед их сохранением в базе данных, что помогает минимизировать риск SQL-инъекций.
Заключение
Функция esc_textarea()
полезна в проектах, где необходимо безопасно работать с текстом, введенным пользователями.