<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->

<book xml:id="book.filter" xmlns="http://docbook.org/ns/docbook">
 <?phpdoc extension-membership="bundled" ?>
 <title>Data Filtering</title>
 <titleabbrev>Filter</titleabbrev>

 <preface xml:id="intro.filter">
  &reftitle.intro;
  <para>
   This extension filters data by either validating or sanitizing it. This is 
   especially useful when the data source contains unknown (or foreign) data,
   like user supplied input. For example, this data may come from an HTML form.
  </para>
  <para>
   There are two main types of filtering:
   <emphasis>validation</emphasis> and <emphasis>sanitization</emphasis>.
  </para>
  <para>
   <link linkend="filter.filters.validate">Validation</link> is used to
   validate or check if the data meets certain qualifications. For example,
   passing in <constant>FILTER_VALIDATE_EMAIL</constant> will determine if
   the data is a valid email address, but will not change the data itself.
  </para>
  <para>
   <link linkend="filter.filters.sanitize">Sanitization</link> will
   sanitize the data, so it may alter it by removing undesired characters.
   For example, passing in <constant>FILTER_SANITIZE_EMAIL</constant> will
   remove characters that are inappropriate for an email address to contain.
   That said, it does not validate the data.
  </para>
  <para>
   <emphasis>Flags</emphasis> are optionally used with both validation and
   sanitization to tweak behaviour according to need. For example, passing
   in <constant>FILTER_FLAG_PATH_REQUIRED</constant> while filtering an
   <acronym>URL</acronym> will require a path (like <literal>/foo</literal> 
   in <literal>http://example.org/foo</literal>) to be present.
  </para>
 </preface>

 &reference.filter.setup;
 &reference.filter.filters;
 &reference.filter.constants;
 &reference.filter.examples;
 &reference.filter.reference;

</book>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

