Когда использовать esc_html и когда использовать sanitize_text_field?


11

Кажется, что они выполняют почти одинаковую работу. Так...

Когда я должен использовать esc_html()вместо sanitize_text_field()?

Ответы:


19

esc_html() более или менее без потерь - он просто превращает разметку HTML в закодированный видимый текст, чтобы браузер не отображал ее как разметку.

Семантически это побег , поэтому он предназначен для безопасного вывода на страницу .

sanitize_text_field()однако фактически удаляет всю разметку HTML, а также лишние пробелы. Не оставляет ничего, кроме простого текста.

Семантически это дезинфицирует , поэтому оно предназначено для обеспечения сохранности ввода .


не лучше ли использовать esc_html как для вывода, так и для сохранения? В любом случае я не буду отображать какую-либо разметку ... так когда бы я использовал sanitize_text_field ()?
агаман

1
@yeahman "лучше" как? Они делают совершенно разные вещи. Отбрасывание разметки обычно используется для вещей, где разметка не ожидается, например, для формы, которая принимает имя.
Первое

Я имею в виду, что он хранит то, что пользователь видит и вводит ... как вы сказали, это без потерь ... (например, он вводит "тег <head> - это место, куда вы должны включить ваши CSS-файлы", он ожидает увидеть <head> в его пост). Для поля имени я бы управлял вводом через валидацию; не более ли подходит?
да

Меня интересуют различия между sanitize_text_field()иstrip_tags
миол

strip_tags используется в sanitize_text_field (), если я не ошибаюсь
да,
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.