Как отобразить HTML-теги в виде простого текста

211

У меня есть форма ввода на моем сайте, где разрешен HTML, и я пытаюсь добавить инструкции по использованию тегов HTML. Я хотел бы, чтобы текст

<strong>Look just like this line - so then know how to type it</strong>

Но пока все, что я получаю, это:

Выглядит так же, как эта строка - так что тогда знайте, как ее напечатать

Как я могу показать теги, чтобы люди знали, что печатать?

user517593
источник

Ответы:

296

Заменить <на &lt;и >с &gt;.

Darm
источник
6
Технически вам нужно только заменить <на & lt; для распознавания большинством браузеров, но> by & gt; хорошая практика
cwallenpoole
8
@ Дарм -1 за то, что не упомянул htmlspecialchars (). Если есть веская причина для этого, пожалуйста, поправьте меня :)
Ронен Несс
7
Если текст вопроса должен был быть сгенерирован PHP, htmlspecialchars () делает то, что предлагает этот ответ: заменяет знаки « меньше» и «больше» (и другие) на их HTML-сущности . Но этот вопрос не уточняет, так что этот более общий ответ является расширенным набором всех специфичных для PHP ответов. И вопрос действительно о HTML.
обрабатывать
В отличие от других комментариев, этот ответ экономит мне 100%, некоторые из ответов, которые я нашел здесь, сказали бы просто использовать php и echo "<? // like this?>"; но это не помогло, все еще не показывая. С другой стороны, этот ответ экономит мне 17 символов, плюс у @handle есть точка, за которую проголосовали.
Айлия
235

В PHP используйте функцию htmlspecialchars () для выхода <и >.

htmlspecialchars('<strong>something</strong>')
кульминация
источник
55

Как говорили многие другие, htmlentities() добьются цели ... но это будет выглядеть как дерьмо.

Оберните его <pre>тегом, и вы сохраните отступы.

echo '<pre>';
echo htmlspecialchars($YOUR_HTML);
echo '</pre>';
Джаррод
источник
36

Вы должны использовать htmlspecialchars. Он заменяет символы, как показано ниже:

  • '&' (амперсанд) становится &amp;
  • '"' (двойная кавычка) становится &quot; когда ENT_NOQUOTES не установлен.
  • "'" (одинарная кавычка) становится &#039; только тогда, когда установлен ENT_QUOTES.
  • «<» (меньше чем) становится &lt;
  • '>' (больше чем) становится &gt;
Луис Дамим
источник
13

Вы можете использовать htmlspecialchars ()

<?php
$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo $new; // &lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;
?>
Никунь К.
источник
6

Вам просто нужно закодировать <>s:

&lt;strong&gt;Look just like this line - so then know how to type it&lt;/strong&gt;
Джеймс Монтань
источник
5

Чтобы отобразить теги HTML в браузере, окружите вывод тегами <xmp> и </ xmp>

Пауло Энрике
источник
4
<xmp> устарел сейчас, больше, чем просто устарел. Не используйте это.
Мухаммед Абдул-Рахим
Быстрый поиск Google в W3C показывает, что XMP был представлен для отображения предварительно отформатированного текста в HTML 3.2 и более ранних версиях. Когда W3C отказался от тега XMP, он предложил использовать тег PRE в качестве предпочтительной альтернативы. Обновление: w3.org/TR/REC-html32#xmp , w3.org/MarkUp/html-spec/html-spec_5.html#SEC5.5.2.1 поделиться изменить следуйте флаг
kophygiddie
3

Вы можете использовать htmlentities при отображении в браузере, это будет показывать тег, а не использовать html для его интерпретации.

Смотрите здесь http://uk3.php.net/manual/en/function.htmlentities.php

Пример:

 echo htmlentities("<strong>Look just like this line - so then know how to type it</strong>"); 

Вывод:

<strong>Look just like this line - so then know how to type it</strong>
martynthewolf
источник
1

Используйте htmlentities () для преобразования символов, которые в противном случае отображались бы как HTML.

Рувим
источник
0

Есть другой способ ...

header('Content-Type: text/plain; charset=utf-8');

Это делает всю страницу простым текстом ... лучше htmlspecialchars ...

Надеюсь это поможет...

Alessandro
источник
0

Родной JavaScript-подход -

('<strong>Look just like ...</strong>').replace(/</ig, '&lt;').replace(/>/ig, '&gt;');

Наслаждайтесь!

simonbor
источник
1
JavaScript не отмечен в этом посте.
Ишервуд
1
Спасибо. Это полезно для меня.
Хан Динь Хоанг