DevGang
Авторизоваться

Разница между htmlentities и htmlspecialchars в PHP

В чем разница между функциями htmlentities() и htmlspecialchars() в PHP?

Для начала htmlspecialchars() является подмножеством htmlentities().

В то время как htmlentities преобразует «все применимые символы в HTML-объекты», htmlspecialchars() преобразует только символы ниже:

  • ‘&’ (Амперсанд) становится ‘&’
  • ‘” ‘(Двойная кавычка) становится‘ " ’, когда ENT_NOQUOTES не установлен.
  • «‘ »(Одинарная кавычка) становится‘ '’(или & apos) только в том случае, если установлен ENT_QUOTES.
  • ‘<‘ (Меньше чем) становится ‘& lt;’
  • ‘>’ (Больше чем) становится ‘& gt;’

как указано в руководстве по PHP.

Обе функции используются для «вывода», чтобы обезопасить веб-страницу от атак с использованием межсайтовых сценариев. Однако в книге Essential PHP Security говорится…

«Htmlentities() - лучшая экранирующая функция для экранирования данных, отправляемых клиенту».

Используйте флаг ENT_QUOTES и кодировку UTF-8, как ниже в примере

htmlentities($userdata, ENT_QUOTES, ‘UTF-8’);

Флаг ENT_QUOTES указывает ему преобразовывать как двойные, так и одинарные кавычки.

И на заметку, параметры двух функций идентичны.
 

#PHP
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

В этом месте могла бы быть ваша реклама

Разместить рекламу