1

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

(网站使用 PHP)

4

2 回答 2

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);
?>
于 2010-06-08T02:07:27.117 回答
0

您所说的称为 HTML 编码;每种现代语言在其库中都有执行此操作的工具,例如 PHP 中的 htmlspecialchars 函数。有关更多 PHP 信息,请参阅这个 SO question

您还应该确保正确地清理输入,即使是针对多轮HTML 解码;否则您将容易受到CSS(跨站点脚本)攻击。

于 2010-06-08T02:13:20.920 回答