วิธีแสดงแท็ก 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>


0

มีวิธีอื่น ...

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

สิ่งนี้ทำให้ทั้งหน้าแสดงเป็นข้อความธรรมดา ... ดีกว่าคือ htmlspecialchars ...

หวังว่านี่จะช่วย ...


0

แนวทาง JavaScript ดั้งเดิม -

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

สนุก!


1
JavaScript ไม่ได้ติดแท็กในโพสต์นี้
isherwood

1
ขอบคุณ. มันมีประโยชน์สำหรับฉัน
Khang Dinh Hoang
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.