是否可以将存储在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