Вопрос № 77738: В копании мануала нашел 2 функции:
string htmlspecialchars ( string string [, int quote_style [, string charset]] )
string htmlentities ( string string [, int quote_style [, string charset]] )
Цитата:
"Эта функция идентична ...
Вопрос № 77.738
В копании мануала нашел 2 функции:
string htmlspecialchars ( string string [, int quote_style [, string charset]] )
string htmlentities ( string string [, int quote_style [, string charset]] )
Цитата:
"Эта функция идентична htmlspecialchars() за исключением того, что htmlentities() преобразует все символы в соответствющие HTML сущности (для тех символов, для которых HTML сущности существуют). "
Вопросы:
1) что есть "соответствющие HTML сущности"
2) объясните популярно в чем отличие их применения
3) какую функцию лучше использовать при написании форума
Отвечает: Ерёмин Андрей
Здравствуйте, Александр (Akylenok[eXZ])!
Html-сущности - это специальные комбинации символов, воспринимаемые как один визуальный символ. Например, если вывести строку "<b>hello</b>" в "чистом" виде, т.е. как есть, то теги исчезнут, а мы увидим hello. Но что делать, если нужно, чтобы на экране появились именно теги? В этом случае нужно служебные символы (в данном случае скобки < и >) заменить на их сущности. Так, левой скобке < соответствует сущность <, а правой > - > Т.е. чтобы
увидеть на экране строку с самим тегами, нужно написать "<b>hello</b>". Функции htmlspecialchars() и htmlentites() как раз выполняют такие преобразования. Html-сущности есть для многих символов - не только для вышеуказанных, - ещё изменениям подвергаются кавычки, амперсанд, а также нестандартные символы (например, символ "евро", значок копирайта и т.п.)
Различий между этими функциями особо нет, просто у второй база замен вроде как побольше. В основном используется первая. Её и рекомендую использовать.
Желаю удачи!
--------- Нет правила без исключений. Правило без исключений - исключение из правил.
Отвечает: Mamanton
Здравствуйте, Александр (Akylenok[eXZ])!
1. HTML сущности - это мнемоники, т.е. - html сущность для пробела (грубо говоря если вам в HTML понадобился пробел можете вставить эту мнемонику). <- открывающая кавычка и т.д. Подробнее смотри здесь http://www.mexxs.net/reviews.php?cat=5&rid=39
2. htmlspecialchars - "обрезанная" версия htmlentities. htmlspecialchars переводит только некоторые мнемоники
'&' (амперсанд) преобразуется в '&'
'"' (двойная кавычка) преобразуется в '"' when ENT_NOQUOTES is not set.
''' (одиночная кавычка) преобразуется в ''' только в режиме ENT_QUOTES.
'<' (знак "меньше чем") преобразуется в '<'
'>' (знак "больше чем") преобразуется в '>'
htmlentities - переводит все которые возможно
3. На вкус и цвет товарища нет. Мне например было достаточно всегда htmlspecialchars
Ответ отправил: Mamanton (статус: 1-ый класс)
Ответ отправлен: 10.03.2007, 13:49 Оценка за ответ: 5 Комментарий оценки: Спасибо за ответ.