esc_attr()和sanitize_text_field()之间的确切区别

如果有任何WordPress开发人员可以帮助我了解esc_attr()和sanitize_text_field()函数之间的确切区别是什么?
我想先将电子邮件值提交给数据库, 然后在我创建的不同类中检索相同的值。使用sanitize_text_field, 我可以删除h2, h3等HTML标记, 但我不太了解est_attr函数在回显这两个标记时的作用。下面是我的功能片段, 任何带有示例的详细说明都将帮助我和其他想要彻底理解它的人。还是在将此类信息提交到数据库并检索相同信息时, 有更好的替代php或wp函数使用?

public static function smtp_email_id() { $smtp_email_id = esc_attr( get_option( 'smtp_email_id' ) ); echo '< input type="email" class="regular-text" name="smtp_email_id" value="'.$smtp_email_id.'" placeholder="username@email.com" /> '; }

感谢大伙们
#1esc_attr($ str)-转义HTML属性。编码< , > , &, “ 和” (小于, 大于, &, 双引号和单引号)字符。
【esc_attr()和sanitize_text_field()之间的确切区别】sanitize_text_field($ str)-在后台, 该函数执行以下操作:
  1. 检查无效的UTF-8(使用wp_check_invalid_utf8())将单个< 字符转换为实体
  2. 剥离所有标签
  3. 删除换行符, 制表符和多余的空白
  4. 带状八位字节

    推荐阅读