В чем разница между функциями esc*?


Я прочитал Профессиональный WordPress, и там написано:

esc_html функция используется для очистки данных, содержащих HTML. Эта функция кодирует специальные символы в их HTML-сущности

esc_attr функция используется для побега Атрибуты HTML

esc_url. Эту функцию следует использовать для очистки URL-адреса от запрещенных символов. Даже несмотря на то, что href технически является атрибутом HTML

Что такое разница между ними?

Если у меня есть

<script>alert('hello world!');</script>this is some content

Будут ли все < > преобразованы в &lt; &gt;? Будет ли URL-адрес чем-то вроде %xxx?

Author: brasofilo, 2010-09-11

1 answers

esc_html и esc_attr почти идентичны, единственная разница заключается в том, что выходные данные передаются через фильтры с разными именами (esc_html и attribute_escape соответственно).

esc_url более сложный и специфичный, он имеет дело с символами, которые не могут быть в URL-адресах и разрешенных протоколах (список которых может быть передан в качестве второго аргумента). Он также добавит ввод с протоколом http://, если он отсутствует (и ссылка не является относительной).

 8
Author: Rarst, 2010-09-11 11:46:07