Основы PHP
46 урок - Функция htmlentities - Преобразуем все возможные символы в соответствующие HTML-сущности
Функция htmlentities — Преобразует все возможные символы в соответствующие HTML-сущности. Эта функция идентична htmlspecialchars() рассмотренной в прошлом уроке за исключением того, что htmlentities() преобразует все символы всоответствющие HTML-сущности (для тех символов, для которых HTML сущности существуют).
В большинстве случаев достаточно рассмотренной ранее функции htmlspecialchars(). Но вы и функцию htmlentities должны знать.
Синтаксис функции:
Константы бывают:
ENT_COMPAT - Преобразует двойные кавычки, одинарные кавычки не изменяются.
ENT_QUOTES - Преобразует как двойные, так и одинарные кавычки.
ENT_NOQUOTES - Оставляет без изменения как двойные, так и одинарные кавычки.
ENT_IGNORE - Молча отбрасывает некорректные кодовые последовательности вместо возврата пустой строки. Данная возможность предоставляется в целях обратной совместимости, избегайте ее использования, т.к. она может внести уязвимости в ваш код.
ENT_SUBSTITUTE - Заменяет некорреткные кодовые последовательности символом замены Юникода U+FFFD в случае использования UTF-8 и &#FFFD; при использовании другой кодировки, вместо возврата пустой строки.
ENT_DISALLOWED - Заменяет кодовые последовательности, несоответствующие указанному типу документа символом замены Юникода U+FFFD в случае использования UTF-8 и &#FFFD; при использовании другой кодировки.
ENT_HTML401 - Обработка кода в соответствии с HTML 4.01.
ENT_XML1 - Обработка кода в соответствии с XML 1.
ENT_XHTML - Обработка кода в соответствии с XHTML.
ENT_HTML5 - Обработка кода в соответствии с HTML 5.
Важный момент, если параметр не указать, то по-умолчанию будет ENT_COMPAT
ENT_IGNORE — работает начиная с php 5.3
ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_XML1, ENT_XHTML и ENT_HTML5 — работают начиная с php 5.4
Рассмотрим функцию на примере:
Заметьте что в браузере выдаст
А если вы посмотрите HTML-код страницы, то увидите.
Если без использования функции вывести - выведет обычную рабочую ссылку. Также бы и вывел работающий зловредный код. Иногда необходимо раскодировать строку чтобы посмотреть что там. Для этого есть функция html_entity_decode. О ней мы поговорим в следующем уроке.