何时使用esc_html和何时使用sanitize_text_field?


11

看来他们从事的工作几乎相同。所以...

什么时候应该esc_html()代替sanitize_text_field()

Answers:


19

esc_html() 是几乎无损的-只是将HTML标记转换为编码的可见文本,因此它不会被浏览器呈现为标记。

从语义上讲,它是转义的,因此它用于使输出到页面安全。

sanitize_text_field()但是实际上删除了所有HTML标记以及多余的空格。它只留下纯文本。

从语义上讲,它是sanitize,因此它应用于使输入内容安全保存


使用esc_html进行输出和保存是否更好?反正我不会显示任何标记..所以我什么时候使用sanitize_text_field()?
yeahman 2014年

1
@yeahman“更好”如何?他们在做截然不同的事情。舍弃标记通常用于不需要标记的事物,例如带有名称的表单。
Rarst 2014年

我的意思是,它存储用户看到的内容并进行输入...就像您说的那样,它是无损的。(例如,他输入“标记<head>是您应该包括CSS文件的位置”,他希望在其中看到<head>他的职位)。对于名称字段,我将通过验证来控制输入;比较适合吗?
yeahman 2014年

我对sanitize_text_field()strip_tags
myol

用strip_tags在sanitize_text_field()使用,如果我没看错
yeahman
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.