2010-06-08 46 views
1

是否可以將存儲在SQL中的文本字段中的HTML字符代碼顯示爲textarea,而無需將它們呈現爲適當的字符?我沒有&顯示爲& amp; (它存儲在表格中的方式)。或者他們是我應該存儲HTML的一種方式,所以我不需要擔心這個問題?防止HTML字符代碼在textarea中呈現

(網站使用PHP)

+0

對不起,你的錯別字提出的問題不清楚:你的數據庫存儲「&」,你想「&」顯示在textarea,或者你的數據庫存儲「&」,你想要「&」出現? – deceze 2010-06-08 02:21:10

回答

0

在PHP中,你可以使用函數用htmlspecialchars(http://php.net/manual/en/function.htmlspecialchars.php):

<?php 
$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES); 
echo $new; 
?> 

,它會呈現:

&lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt; 

,如果你想對它們進行解碼你只需使用功能htmlspecialchars_decode

<?php 
$str = '<p>this -&gt; &quot;</p>'; 

echo htmlspecialchars_decode($str); 

// note that here the quotes aren't converted 
echo htmlspecialchars_decode($str, ENT_NOQUOTES); 
?> 
+0

謝謝,我在發佈問題幾分鐘後才發現這一點,但感謝回覆。 – seanmetzgar 2010-06-12 23:34:09

0

你在說什麼叫做HTML編碼;每種現代語言都在其庫中有一個工具,例如PHP中的htmlspecialchars函數。有關更多PHP信息,請參閱this SO question

您還應該確保您正確地對輸入進行了消毒處理,即使對的多個回合進行了HTML解碼;否則您會受到CSS(跨站腳本攻擊)攻擊的影響。