是否可以将存储在SQL的文本字段中的HTML字符代码显示给TextArea中,而无需将其作为合适的字符?我没有出现AS&(将其存储在桌子中的方式)。还是我应该存储HTML的一种方式,所以我不必担心这个?

(站点使用PHP)

有帮助吗?

解决方案

在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);
?>

其他提示

您所说的称为HTML编码;每种现代语言都有其图书馆的设施,例如php中的HTMLSpecialchars功能。有关更多PHP信息,请参阅 这个问题.

您还应该确保您适当地对输入进行了适当的清理,即使 多个回合 HTML解码;否则您会容易 CSS (跨站点脚本)攻击。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top