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

8

Я прочитал Профессиональный 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?

Jiew Meng
источник

Ответы:

8

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

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

Rarst
источник