问题描述
我读过专业 WordPress,它说:
esc_html
function is used for scrubbing data that contains HTML. This function encodes special characters into their HTML entities
esc_attr
function is used for escaping HTML attributes
esc_url
. This function should be used to scrub the URL for illegal characters. Even though the href is technically an HTML attribute
这些有什么区别?
如果我有
<script>alert('hello world!');</script>this is some content
将所有< >
转换为< >
?网址会像%xxx
那样吗?
最佳解决方案
esc_html
和 esc_attr
是 near-identical,唯一的区别是输出通过不同命名的过滤器 (分别为 esc_html
和 attribute_escape
) 。
esc_url
更复杂和更具体,它处理不能在 URL 和允许的协议中的字符 (列表可以作为第二个参数传递) 。如果它不存在,它也将使用 http://
协议来预置输入 (并且链接不是相对的) 。
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。