是否可以将存储在 SQL 文本字段中的 HTML 字符代码显示到文本区域而不将它们呈现为适当的字符?我没有 & 显示为 & (它存储在表中的方式)。或者他们是我应该存储HTML的一种方式,所以我不需要担心这个?
(网站使用 PHP)
是否可以将存储在 SQL 文本字段中的 HTML 字符代码显示到文本区域而不将它们呈现为适当的字符?我没有 & 显示为 & (它存储在表中的方式)。或者他们是我应该存储HTML的一种方式,所以我不需要担心这个?
(网站使用 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);
?>
您所说的称为 HTML 编码;每种现代语言在其库中都有执行此操作的工具,例如 PHP 中的 htmlspecialchars 函数。有关更多 PHP 信息,请参阅这个 SO question。
您还应该确保正确地清理输入,即使是针对多轮HTML 解码;否则您将容易受到CSS(跨站点脚本)攻击。