Cách hiển thị thẻ HTML dưới dạng văn bản thuần túy


211

Tôi có một mẫu đầu vào trên trang web của mình nơi HTML được cho phép và tôi đang cố gắng thêm hướng dẫn về việc sử dụng thẻ HTML. Tôi muốn văn bản để

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

Nhưng cho đến nay tất cả những gì tôi nhận được là:

Trông giống như dòng này - vì vậy sau đó biết cách nhập nó

Làm cách nào để hiển thị các thẻ để mọi người biết phải nhập gì?

Câu trả lời:


296

Thay thế <bằng &lt;>bằng &gt;.


6
Về mặt kỹ thuật, bạn chỉ cần thay thế <by & lt; để nó được hầu hết các trình duyệt nhận ra, nhưng> by & gt; là thực hành tốt
cwallenpoole

8
@Darm -1 vì không đề cập đến htmlspecialchars (). Nếu có một lý do chính đáng cho điều đó, xin hãy sửa lỗi cho tôi :)
Ronen Ness

7
Nếu văn bản của câu hỏi được tạo bởi PHP, htmlspecialchars () thực hiện những gì câu trả lời này gợi ý: thay thế các dấu hiệu nhỏ hơn và lớn hơn (và các dấu hiệu khác) bằng các thực thể HTML của chúng . Nhưng câu hỏi không chỉ định, vì vậy câu trả lời tổng quát hơn này là siêu bộ của tất cả các câu trả lời dành riêng cho PHP. Và câu hỏi thực sự là về HTML.
xử lý

Ngược lại với các ý kiến ​​khác, câu trả lời này giúp tôi tiết kiệm 100%, một số câu trả lời tôi tìm thấy ở đây sẽ nói chỉ cần sử dụng php và echo "<? // như thế này?>"; nhưng điều đó không giúp được gì cả vẫn không hiển thị. Mặt khác, câu trả lời này giúp tôi tiết kiệm tổng cộng 17 ký tự cộng với @handle có một điểm được bình chọn.
ailia


55

Như nhiều người khác đã nói, htmlentities()sẽ thực hiện mánh khóe ... nhưng nó sẽ giống như cứt.

Gói lại bằng một <pre>thẻ và bạn sẽ giữ được vết lõm của mình.

echo '<pre>';
echo htmlspecialchars($YOUR_HTML);
echo '</pre>';

36

Bạn nên sử dụng htmlspecialchars. Nó thay thế các ký tự như dưới đây:

  • '&' (ký hiệu) trở thành &amp;
  • '"' (trích dẫn kép) trở thành &quot;khi ENT_NOQUOTES không được đặt.
  • "'" (trích dẫn đơn) &#039;chỉ trở thành khi ENT_QUOTES được đặt.
  • '<' (ít hơn) trở thành &lt;
  • '>' (lớn hơn) trở thành &gt;

13

bạn có thể sử dụng 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

Bạn chỉ cần mã hóa <>s:

&lt;strong&gt;Look just like this line - so then know how to type it&lt;/strong&gt;

5

Để hiển thị các thẻ HTML trong trình duyệt, hãy bao quanh đầu ra bằng các thẻ <xmp> và </ xmp>


4
<xmp> đã lỗi thời, nhiều hơn là không dùng nữa. Đừng sử dụng nó.
Muhammad Abdul-Rahim

Một tìm kiếm nhanh trên Google trên W3C cho thấy XMP được giới thiệu để hiển thị văn bản được định dạng sẵn trong HTML 3.2 trở về trước. Khi W3C không dùng thẻ XMP, nó đã đề xuất sử dụng thẻ PRE làm phương án thay thế ưa thích. Cập nhật: w3.org/TR/REC-html32#xmp , w3.org/MarkUp/html-spec/html-spec_5.html#SEC5.5.2.1 chia sẻ chỉnh sửa theo cờ
kophygiddie

3

Bạn có thể sử dụng htmlentity khi lặp lại trình duyệt, điều này sẽ hiển thị thẻ chứ không phải là html diễn giải nó.

Xem tại đây http://uk3.php.net/manual/en/feft.htmlentities.php

Thí dụ:

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

Đầu ra:

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


0

Có một cách khác ...

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

Điều này làm cho toàn bộ trang được phân phát dưới dạng văn bản thuần túy ... tốt hơn là htmlspecialchars ...

Hi vọng điêu nay co ich...


0

Cách tiếp cận JavaScript gốc -

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

Thưởng thức!


1
JavaScript không được gắn thẻ trong bài viết này.
isherwood

1
Cảm ơn bạn. Nó hữu ích cho tôi.
Khang Dinh Hoàng
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.