2011-10-03 46 views
-1

我創建了一個表單,用戶可以輸入html代碼,並在另一個textarea中輸出代碼。問題是,如果用戶輸入的html在代碼中有一個textarea,那麼在他們的代碼中會打破我的textarea表單。我看到其他網站正確顯示任何html,因此如何在不破壞表單的情況下完成此操作,並允許用戶複製它,以便它仍然保留並不是一些轉換後的代碼,因此可以將其粘貼到他們的網頁上?如何使textarea輸出textarea代碼而不中斷?

啊胡扯是啊我想通了,實際上問題不是與單獨的htmlspecialchars代碼我忘了添加一個返回到我的一個函數哈哈。多謝你們。

+1

請添加您的解決方案作爲答案並接受它。 – hakre

回答

4

表示在使用實體的HTML中具有特殊含義的字符。由於您使用PHP,使用htmlspecialchars

+1

您可能還想使用「htmlentities」,它就像一個加強版的「htmlspecialchars」。 –

+0

只要注意''& amp''與這些雖然(除非你正在運行與雙編碼布爾標誌5.3x)。 – CD001

+1

@Ayman「臃腫」你想說什麼?任何理由想要使用這個毫無意義的功能? –

-1
<textarea><?php echo htmlentities($code); ?></textarea> 
-1

你必須對HTML代碼轉換爲符號,所以它不被視爲HTML。

在回顯textarea內容之前,使用函數htmlentities()

0

有成千上萬種方式來做到這一點。最簡單的方法是在用戶輸入上使用htmlspecialcharshtmlentities。這將使textarea框中的視覺</textarea>不關閉它。這實際上變成了&lt;/textarea&gt;htmlspecialchars轉換的字符數少於htmlentities,通常在這種情況下使用更有意義,但要做好自己的研究。

strip_tags()也是可能的。

您還可以使用與PCRE,甚至str_replace()函數或其他字符串處理函數正則表達式來剝離textarea的,轉換的特殊字符等

PECL也爲BB代碼擴展,你可以如果你仍然希望你的用戶能夠輸入一些標籤來設置他們的輸出風格,可以使用它。