是否可以將存儲在SQL中的文本字段中的HTML字符代碼顯示爲textarea,而無需將它們呈現爲適當的字符?我沒有&顯示爲& amp; (它存儲在表格中的方式)。或者他們是我應該存儲HTML的一種方式,所以我不需要擔心這個問題?防止HTML字符代碼在textarea中呈現
(網站使用PHP)
是否可以將存儲在SQL中的文本字段中的HTML字符代碼顯示爲textarea,而無需將它們呈現爲適當的字符?我沒有&顯示爲& amp; (它存儲在表格中的方式)。或者他們是我應該存儲HTML的一種方式,所以我不需要擔心這個問題?防止HTML字符代碼在textarea中呈現
(網站使用PHP)
在PHP中,你可以使用函數用htmlspecialchars(http://php.net/manual/en/function.htmlspecialchars.php):
<?php
$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo $new;
?>
,它會呈現:
<a href='test'>Test</a>
,如果你想對它們進行解碼你只需使用功能htmlspecialchars_decode
<?php
$str = '<p>this -> "</p>';
echo htmlspecialchars_decode($str);
// note that here the quotes aren't converted
echo htmlspecialchars_decode($str, ENT_NOQUOTES);
?>
謝謝,我在發佈問題幾分鐘後才發現這一點,但感謝回覆。 – seanmetzgar 2010-06-12 23:34:09
你在說什麼叫做HTML編碼;每種現代語言都在其庫中有一個工具,例如PHP中的htmlspecialchars函數。有關更多PHP信息,請參閱this SO question。
您還應該確保您正確地對輸入進行了消毒處理,即使對的多個回合進行了HTML解碼;否則您會受到CSS(跨站腳本攻擊)攻擊的影響。
對不起,你的錯別字提出的問題不清楚:你的數據庫存儲「&」,你想「&」顯示在textarea,或者你的數據庫存儲「&」,你想要「&」出現? – deceze 2010-06-08 02:21:10