Прекратить преобразование HTML-кода - PullRequest
1 голос
/ 01 июля 2011

У меня есть таблица HTML, которая отображает информацию из базы данных, и одно из полей базы данных содержит список параметров, например:

id=eff34-435-567rt-65u&notification=5

Но когда я отображаю это в таблице, ¬ становится ¬

Я знаю, что вы можете вручную заставить его правильно печатать, используя

&not

Но я действительно предпочел бы просто использовать что-то, чтобы заставить HTML игнорировать код, поэтому яможно просто вытащить текст прямо из базы данных и распечатать его в таблице, не выполняя регулярных выражений, чтобы выяснить, есть ли какие-либо &, и заменить их на & я попытался использовать тег

, но это не сработало.  Есть ли способ заставить HTML печатать именно то, что напечатано для этого конкретного поля td? 

Ответы [ 5 ]

4 голосов
/ 01 июля 2011

Ничего практичного (CDATA не поддерживает браузер в режиме text/html). Напишите правильный HTML вместо этого.

Вы должны запускать все, что выходит из базы данных через функцию преобразования, чтобы в любом случае сделать ее HTML безопасной (для защиты от XSS, если ничего больше). PHP имеет htmlspecialchars(), TT имеет | html. Все, что вы используете, должно иметь что-то иное, чем регулярное выражение.

2 голосов
/ 01 июля 2011

& - правильная кодировка HTML для &.Вам нужно будет написать &not, чтобы он отображался правильно.

Если вы извлекаете данные из базы данных, вы можете использовать любой язык программирования, который вам доступен, чтобы декодировать HTML-объекты для вас.*

Например, в PHP вы можете использовать htmlentities или htmlspecialchars.

1 голос
/ 01 июля 2011

Просто запустите HTMLEncode для строки перед ее выводом.Каждый серверный язык сценариев, который я знаю, имеет встроенную команду для этого.Не говоря уже о том, что в конечном итоге вы столкнетесь с другим символом, который тоже вызывает проблемы.

ASP.NET: HttpServerUtility.HtmlEncode
PHP: htmlentities

Регулярное выражение определенно НЕ должно быть необходимым

1 голос
/ 01 июля 2011

большинство фреймворков имеют функции кодирования HTML.

в JavaScript: encode

в C # .NET: HttpServerUtility.HtmlEncode

1 голос
/ 01 июля 2011

Попробуйте использовать htmlspecialchars () .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...