何时使用:htmlspecialchars?

时间:2013-06-06 14:51:46

标签: php mysql

我需要使用以下方法将字符串转换为特殊字符:

 htmlspecialchars

我的问题是,我应该在将数据提交到数据库之前将其转换,还是应该在显示之前对其进行转换?

4 个答案:

答案 0 :(得分:6)

您应该在将数据插入数据库之前清理数据,并在检索时将其转义。

htmlspecialchars用于转义,因此它应该是在您从数据库中提取它之后。

答案 1 :(得分:2)

在存储源数据之前,最好不要修改源数据。它会将您的数据绑定到您正在使用它的特定上下文。如果您需要一种不同的显示方式,例如, PDF或文本格式?然后,您将在文本中包含html实体,并需要将它们转换回来。

恕我直言在这方面,性能方面的考虑因素是次要的,人们仍然可以利用缓存技术获取视图。

所以,在底线我建议你在展示之前总是准备你的字符串。

答案 2 :(得分:2)

我假设数据已经转义已清理,然后再将其放入数据库中,因此它是安全的。从那里,我尝试在去数据库的路上尽可能少地更改数据。

要记住的是,您现在可能正在使用您网站上的副本,但稍后您可能希望在其他设备或打印时使用该副本。如果在进入数据库之前使用htmlspecialchars,如果要将其用于HTML之外的其他内容,则必须清除它。在将日期放入数据库之前将日期格式化为字符串是常见的,但是当您想要更改格式时......

答案 3 :(得分:1)

它使数据安全地插入到HTML文档中。在将其插入HTML文档而不是数据库之前使用它。