2011-08-02 152 views
13

我有麻煩嘗試使用PHP在HTML中打印出<>符號。在PHP中打印小於和大於符號

我將一個字符串「<machine>」添加到變量中。

例子:

$output .= " <machine> "; 
echo $output; 

我嘗試使用逃逸,但沒有幫助。有什麼建議?

+0

http://php.net/manual/en/function.htmlentities.php - '回波ヶ輛($輸出);' – ajreal

+0

的可能重複的[如何顯示HTML標記爲純文本](http://stackoverflow.com/questions/6817262/how-to-display-html-tags-as-plain-text) –

回答

5

如果你是輸出HTML,你不能只用<>:您必須使用相應的HTML entities&lt;&gt;


如果你在PHP中的字符串想要通過相應的HTML實體自動替換這些字符,您將會對htmlspecialchars()函數感興趣(引用)

執行的翻譯是:

  • '&'(符號)變成'&amp;'
  • '"'(雙引號)變得'&quot;'ENT_NOQUOTES不是 集。
  • "'"(單引號)變成'&#039;'只有當ENT_QUOTES是 設置。
  • '<'(小於)變得'&lt;'
  • '>'(大於)變得'&gt;'


你的情況,像這樣的代碼的一部分:

$輸出=「 「;

echo htmlspecialchars($output, ENT_COMPAT, 'UTF-8'); 

會得到以下HTML代碼輸出:

&lt;machine&gt; 


而且,爲了以防萬一,如果你想編碼更多的字符,你應該看看htmlentities()功能。

19

&gt; = >
&lt; = <

或者您可以使用htmlspecialchars

$output .= htmlspecialchars(" <machine> "); 
+0

感謝幫助以及其他人的迴應。 –

+0

或者僅僅是'echo'輸出的'htmlspecialchars()',不需要在之前運行它。 –

+0

@韋斯利:OP的代碼包含了一個連接,所以我想強調它仍然可以和原來的意圖一樣使用(並且它返回一個值,而不僅僅是輸出一個)。但是你是對的,只需要把它稱爲最高級別。 –

2

你的麻煩不使用PHP,而是與<>在HTML中使用的事實。如果你希望他們在瀏覽器中顯示,你可能想打印出他們躲過實體版本:

  • <&lt;
  • >&gt;

您還可以使用htmlspecialchars()功能自動轉換它們:

echo htmlspecialchars("<machine>"); 
1

您需要將它們變成例如&lt;&gt; - 請參閱htmlentities()htmlspecialchars()函數。

1
echo htmlentities($output); 

echo htmlspecialchars($output); 

如果你不想打擾手動經歷的字符串和更換的實體。

-1

<和>符號應顯示在HTML源中,但「<」機器>被解釋爲XML標記。使用htmlentities()將字符串中的所有特殊字符轉換爲其HTML等價物,或使用「& lt; machine & gt;」

解決方案:

$output .= " <machine> "; 
$output = htmlentites($output); 
echo $output;