2010-06-08 49 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(跨站脚本攻击)攻击的影响。