В чем разница между функциями esc*?
Я прочитал Профессиональный WordPress, и там написано:
esc_html
функция используется для очистки данных, содержащих HTML. Эта функция кодирует специальные символы в их HTML-сущности
esc_attr
функция используется для побега Атрибуты HTML
esc_url
. Эту функцию следует использовать для очистки URL-адреса от запрещенных символов. Даже несмотря на то, что href технически является атрибутом HTML
Что такое разница между ними?
Если у меня есть
<script>alert('hello world!');</script>this is some content
Будут ли все < >
преобразованы в < >
? Будет ли URL-адрес чем-то вроде %xxx
?
1 answers
esc_html
и esc_attr
почти идентичны, единственная разница заключается в том, что выходные данные передаются через фильтры с разными именами (esc_html
и attribute_escape
соответственно).
esc_url
более сложный и специфичный, он имеет дело с символами, которые не могут быть в URL-адресах и разрешенных протоколах (список которых может быть передан в качестве второго аргумента). Он также добавит ввод с протоколом http://
, если он отсутствует (и ссылка не является относительной).