防止在textarea中呈现HTML字符代码

时间:2010-06-08 02:05:34

标签: php sql textarea character-codes

是否可以将存储在SQL文本字段中的HTML字符代码显示到textarea而不将它们作为适当的字符呈现?我没有&显示为& amp; (它存储在表格中的方式)。或者他们应该存储HTML的方式,所以我不需要担心这个?

(网站正在使用PHP)

2 个答案:

答案 0 :(得分: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);
?>

答案 1 :(得分:0)

你所说的是HTML编码;每种现代语言都在其库中有一个工具,例如PHP中的htmlspecialchars函数。有关更多PHP信息,请参阅this SO question

您还应确保正确清理输入,即使是针对HTML解码的多轮;否则你会受到CSS(跨站点脚本)攻击的影响。