混淆何时使用addslashes以及何时使用htmlentities

时间:2011-05-04 10:34:34

标签: php

  

可能重复:
  Htmlentities vs addslashes vs mysqli_real_escape_string
  When to use which string escaping method?

您好,     我很困惑何时使用addslashes以及何时使用htmlentities。

你能告诉我一个例子,我应该在哪里使用addslashes以及何时使用htmlentities。

2 个答案:

答案 0 :(得分:5)

  • 绝不使用addslashes。

  • 也绝不使用htmlentities() *

  • 在HTML页面的上下文中输出不受信任的内容时使用htmlspecialchars()

通常,通常有一种正确的方法可以转义/清理数据,具体取决于您要对其执行的操作。如果你告诉我们更多关于你要做什么的事情,有人可以指出你正确的方向。

* =除非您需要,否则通常不会。 htmlentities()将不必要的字符转换为各自的HTML实体,这在UTF-8时代变得多余。为了安全起见,htmlspecialchars()涵盖的字符范围就足够了。

答案 1 :(得分:2)

我有点困惑,我同意。但是,让我们看看我们是否可以提供帮助:)

htmlentities使数据安全,可以输出到HTML文档中。 PHP手册说。

  

此函数与htmlspecialchars()在所有方面都相同,除了htmlentities()之外,所有具有HTML字符实体等价物的字符都会被转换为这些实体。

但请记住,应该不惜一切代价避免在UTF-8编码文档中使用htmlentities()!始终存在问题,请参阅http://www.phpwact.org/php/i18n/charsets#common_problem_areas_with_utf-8

addslashes使数据在其他一些情况下安全,但如果您的数据库有自己的数据,那么使用它,对于MySQL(那里需要mysql_real_escape_string