Як відображати HTML-теги як звичайний текст


211

На моєму веб-сайті є форма введення, де дозволено використання HTML, і я намагаюся додати інструкції щодо використання тегів HTML. Я хотів би, щоб текст

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

Але поки що все, що я отримую, це:

Виглядайте так само, як ця лінія - тож знайте, як її набрати

Як я можу показати теги, щоб люди знали, що вводити?

Відповіді:


296

Замініть <на &lt;і >з &gt;.


6
Технічно вам потрібно лише замінити <на & lt; щоб його розпізнавали більшість браузерів, але> за & gt; хороша практика
cwallenpoole

8
@Darm -1 за те, що не згадує htmlspecialchars (). Якщо для цього є обґрунтована причина, будь ласка, виправте мене :)
Ronen Ness

7
Якщо текст запитання повинен бути створений PHP, htmlspecialchars () робить те, що пропонує ця відповідь: замініть знаки менше та більше (та інші) їх HTML-сутностями . Але питання не вказує, тому ця більш загальна відповідь є сукупністю всіх відповідей, що стосуються PHP. І питання справді стосується HTML.
обробляти

На відміну від інших коментарів ця відповідь врятує мене на 100%, деякі відповіді, які я знайшов тут, скажуть просто використовувати php та echo "<? // like this?>"; але це зовсім не допомогло досі не показувати. З іншого боку, ця відповідь врятує мене всього 17 символів плюс @handle має крапку, проголосовану таким чином.
ailia


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;
?>


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>

1

Використовуйте htmlentities () для перетворення символів, які в іншому випадку відображатимуться як HTML.


0

Є ще один спосіб ...

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

Завдяки цьому вся сторінка слугує звичайним текстом ... краще - HTML-спеціальнішарки ...

Сподіваюся, це допомагає ...


0

Підхідний JavaScript-підхід -

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

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


1
JavaScript не позначений у цій публікації.
Ізервуд

1
Дякую. Це для мене корисно.
Ханг Дінь Хоанг
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.