2012-08-08 47 views
0

我在數據庫中格式化了html標籤(<變爲&lt;等等)。直接從數據庫輸出html

我遇到的問題是html標籤字面輸出;而不是<b>Text</b>使文字加粗,它顯示爲&lt;b&gt;

有人知道這是爲什麼嗎?或者如何修復它? 這可能是一個非常簡單的問題,我忽略了它。

網站上的輸出:在DB the website

HTML代碼: partial image of the data in the DB.

+0

你通常存儲htmls未編碼,並使用'htmlentities'輸出編碼 – 2012-08-08 01:57:26

+0

這就是問題 - 它被編碼,知道這是簡單的。我使用codeigniter框架來防止上述和更多(XSS攻擊和SQLi)。謝謝 – RobAtStackOverflow 2012-08-08 12:01:44

回答

2

使用html_entity_decode()

echo html_entity_decode("&lt;b&gt;"); // <b> 
+0

grrr !,你擊敗了我! :D – raidenace 2012-08-08 02:03:29

+0

謝謝約翰 - 知道這是如此愚蠢和簡單! – RobAtStackOverflow 2012-08-08 12:03:37

1

我想你們希望&lt;等全部更換<同時將HTML存儲在數據庫中。但我發現在你的分貝中,<script ...標籤看起來像&amp;lt;script ...。 嘗試用&lt;script ...之類的東西替換它。 還要確保設置了正確的MIME類型。對於HTML頁面,請使用:

header('Content-type: text/html'); 
0

而不是解碼,請確保您沒有對它進行雙重編碼。如果你已經在數據庫中編碼了數據,然後在打印出來時再次對它進行編碼,它應該被渲染爲<等。

+0

我不認爲我是,除非我使用的codeigniter框架「自動」。感謝您的信息,但我會牢記這一點。 – RobAtStackOverflow 2012-08-08 12:04:41