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

时间:2017-11-29 03:54:58

标签: php wordpress wordpress-theming

如果任何WordPress开发者可以帮助我理解函数 esc_attr() sanitize_text_field()之间的确切区别是什么?

我想首先向数据库提交电子邮件值,然后在我创建的不同类中检索它们。使用sanitize_text_field我可以删除html标签,如h2,h3等,但我不太明白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" />';
}

谢谢你们

1 个答案:

答案 0 :(得分:1)

  1. esc_attr($ str) - 转义HTML属性。编码&lt;,&gt;,&amp;,“和'(小于,大于,&符号,双引号和单引号)字符。

  2. sanitize_text_field($ str) - 在幕后,该功能执行以下操作:

    1. 检查无效的UTF-8(使用wp_check_invalid_utf8())转换单个&lt;字符到实体
    2. 剥离所有标签
    3. 删除换行符,标签和额外的空格
    4. 剥离八位字节