清理数据

不受信任的数据来自许多来源(用户、第三方站点,甚至您自己的数据库!),所有这些都需要在使用前进行检查。

请记住:即使是管理员也是用户,用户会故意或无意地输入不正确的数据。保护他们不受伤害是你的工作。

_清理_输入是保护/清理/过滤输入数据的过程。验证优于清理,因为验证更具体。但是当“更具体”是不可能的时候,消毒是下一个最好的事情。

例子

假设我们有一个名为的输入字段title

<input id="title" type="text" name="title">

我们不能在这里使用验证,因为文本字段太笼统了:它可以是任何东西。所以我们用函数清理输入数据sanitize_text_field()

$title = sanitize_text_field( $_POST['title'] );
update_post_meta( $post->ID, 'title', $title );

在幕后,sanitize_text_field()执行以下操作:

  1. 检查无效的 UTF-8
  2. 将单个小于号 (<) 转换为实体
  3. 剥离所有标签
  4. 删除换行符、制表符和多余的空格
  5. 条八位组

消毒功能

有许多功能可以帮助您清理数据。

  • sanitize_email()
  • sanitize_file_name()
  • sanitize_hex_color()
  • sanitize_hex_color_no_hash()
  • sanitize_html_class()
  • sanitize_key()
  • sanitize_meta()
  • sanitize_mime_type()
  • sanitize_option()
  • sanitize_sql_orderby()
  • sanitize_term()
  • sanitize_term_field()
  • sanitize_text_field()
  • sanitize_textarea_field()
  • sanitize_title()
  • sanitize_title_for_query()
  • sanitize_title_with_dashes()
  • sanitize_user()
  • sanitize_url()
  • wp_kses()
  • wp_kses_post()