CakePHP:h()与Sanitize :: html()

时间:2013-06-18 02:08:04

标签: cakephp sanitization

CakePHP有一个名为h的全局函数。这是htmlspecialchars的便捷方法。 CakePHP还有一个名为Sanitize的实用程序,它有一个名为html的方法。以下是其描述的一部分:

  

此方法准备用户提交的数据以在HTML中显示。这个   如果您不希望用户破坏您的用户,则特别有用   布局或在HTML页面内插入图像或脚本。

什么时候应该使用?一个比另一个好吗?

1 个答案:

答案 0 :(得分:4)

Sanitize::html()更通用:它允许您完全剥离HTML(通过remove选项),并允许您指定处理引用的方式。

参见源代码:
h()http://api.cakephp.org/2.3/source-function-h.html#160-199
Sanitize::html()http://api.cakephp.org/2.3/source-class-Sanitize.html#83-122

编辑:
h():致电htmlspecialchars()
Sanitize::html():致电htmlentities()

有关差异的讨论,请参阅:htmlentities() vs. htmlspecialchars()