<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/refs.basic.vartype.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'zh',
  ),
  'this' => 
  array (
    0 => 'book.filter.php',
    1 => '过滤器',
    2 => '数据过滤器',
  ),
  'up' => 
  array (
    0 => 'refs.basic.vartype.php',
    1 => '变量与类型相关扩展',
  ),
  'prev' => 
  array (
    0 => 'function.ctype-xdigit.php',
    1 => 'ctype_xdigit',
  ),
  'next' => 
  array (
    0 => 'filter.setup.php',
    1 => '安装/配置',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'zh',
    'path' => 'reference/filter/book.xml',
  ),
  'history' => 
  array (
  ),
  'extra_header_links' => 
  array (
    'rel' => 'alternate',
    'href' => '/manual/en/feeds/book.filter.atom',
    'type' => 'application/atom+xml',
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="book.filter" class="book">
 
 <h1 class="title">数据过滤器</h1>
 

 <div id="intro.filter" class="preface">
  <h1 class="title">简介</h1>
  <p class="simpara">
   该扩展提供过滤器，用于验证或清理数据。当数据源包含像用户提供的输入数据等未知（或外部）数据时，这尤其有用。例如，这些数据可能来自 <abbr title="Hyper Text Markup Language">HTML</abbr> 表单。
  </p>
  <p class="simpara">
   有两种主要的过滤类型：<em>验证（validation）</em>和<em>清理（sanitization）</em>。
  </p>
  <p class="simpara">
   验证过滤器用于检查数据是否符合某些标准。这些过滤器通过 <strong><code><a href="filter.constants.php#constant.filter-validate-bool">FILTER_VALIDATE_<span class="replaceable">*</span></a></code></strong>
   常量区分。例如，<strong><code><a href="filter.constants.php#constant.filter-validate-email">FILTER_VALIDATE_EMAIL</a></code></strong> 过滤器可用于确定数据是否为有效的电子邮件地址。但是，它永远不会更改输入数据。
  </p>
  <p class="simpara">
   另一方面，清理将“清洁”数据，因此可能会通过添加或移除字符来更改输入数据。这些过滤器通过 <strong><code><a href="filter.constants.php#constant.filter-sanitize-string">FILTER_SANITIZE_<span class="replaceable">*</span></a></code></strong>
   常量区分。例如，<strong><code><a href="filter.constants.php#constant.filter-sanitize-email">FILTER_SANITIZE_EMAIL</a></code></strong> 过滤器将删除电子邮件地址中不应该存在的字符。但是，清理后的数据不会验证是否是有效的电子邮件地址。
  </p>
  <p class="simpara">
   大多数过滤器都支持可选的 <em>flag</em>，这些 flag 可以调整过滤器的行为。这些标记通过 <strong><code><a href="filter.constants.php#constant.filter-flag-none">FILTER_FLAG_<span class="replaceable">*</span></a></code></strong>
   常量区分。例如，将 <strong><code><a href="filter.constants.php#constant.filter-flag-path-required">FILTER_FLAG_PATH_REQUIRED</a></code></strong> 与 <strong><code><a href="filter.constants.php#constant.filter-validate-url">FILTER_VALIDATE_URL</a></code></strong> 验证过滤器一起使用，可以要求 URL
   存在路径（例如 <code class="literal">https://example.org/foo</code> 中的 <code class="literal">/foo</code>）。
  </p>
 </div>

 








 







 





 










<ul class="chunklist chunklist_book"><li><a href="filter.setup.php">安装/配置</a><ul class="chunklist chunklist_book chunklist_children"><li><a href="filter.installation.php">安装</a></li><li><a href="filter.configuration.php">运行时配置</a></li></ul></li><li><a href="filter.constants.php">预定义常量</a></li><li><a href="filter.examples.php">示例</a><ul class="chunklist chunklist_book chunklist_children"><li><a href="filter.examples.validation.php">验证</a></li><li><a href="filter.examples.sanitization.php">清理</a></li></ul></li><li><a href="ref.filter.php">过滤器函数</a><ul class="chunklist chunklist_book chunklist_children"><li><a href="function.filter-has-var.php">filter_has_var</a> — 检测是否存在指定类型的变量</li><li><a href="function.filter-id.php">filter_id</a> — 返回与某个特定名称的过滤器相关联的id</li><li><a href="function.filter-input.php">filter_input</a> — 通过名称获取特定的外部变量，并且可以通过过滤器处理它</li><li><a href="function.filter-input-array.php">filter_input_array</a> — 获取一系列外部变量，并且可以通过过滤器处理它们</li><li><a href="function.filter-list.php">filter_list</a> — 返回所支持的过滤器列表</li><li><a href="function.filter-var.php">filter_var</a> — 使用特定的过滤器过滤一个变量</li><li><a href="function.filter-var-array.php">filter_var_array</a> — 获取多个变量并且过滤它们</li></ul></li></ul></div><?php manual_footer($setup); ?>