извлечение блока HTML-кода из базы данных и его правильное отображение с использованием php без ошибок - PullRequest
0 голосов
/ 22 ноября 2011

Итак, я делаю простой бэкэнд для веб-сайта, где содержимое данных страниц можно быстро редактировать.Содержимое страницы сохраняется в базе данных MySQL и может содержать теги HTML.

На странице редактирования я хочу, чтобы администратор мог просматривать HTML-код, написанный на странице, прежде чем выбрать вариант его редактирования.Итак, я хочу отображать теги HTML и все.Как я могу избежать тегов в большом блоке текста?

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

Например, если у меня есть:

$content = "<h1>test</h1>";
echo "<![CDATA[".$content."]]>";

Я просто получаю

test]]> 

написано на странице.

Ответы [ 2 ]

2 голосов
/ 23 ноября 2011

Если вы хотите просмотреть содержимое HTML на странице, экранированный, не используйте htmlentities($content), потому что специальные символы, как и многие символы UTF-8, не будут отображаться должным образом, поскольку объекты HTML не всегда интерпретируются правильно .

Если $content - это UTF-8, то:

echo htmlspecialchars($content, ENT_QUOTES, 'UTF-8');

...

htmlspecialchars () - все, что вам нужно при отображении HTML, чтобы правильно экранировать специальные символы, такие как &, ", ', <и>. Вот и все.

Убедитесь, что вы соответствуете кодировке $content. Я настоятельно рекомендую использовать UTF-8 для всего.

Чтобы установить кодировку в HTML-документе:

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
...
</head> 

Где charset=ENCODING_OF_$content.

0 голосов
/ 22 ноября 2011

Вы пробовали htmlentities?

Как это:

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