<slide title="filter">

<break lines="1" />

<link fontsize="4em" marginleft="1em" href="http://php.net/filter"/>

<example title="Config"><![CDATA[filter.default=special_chars]]></example>

<example title="API" fontsize="1.5em"><![CDATA[<?php
$email   = filter_input(INPUT_POST, 'name', FILTER_VALIDATE_EMAIL);
$age     = filter_input(INPUT_POST, 'age', FILTER_VALIDATE_INT);  
$url     = filter_input(INPUT_COOKIE, 'url', FILTER_VALIDATE_URL);  
$raw_msg = filter_input(INPUT_POST, 'msg', FILTER_UNSAFE_RAW);  
$options = filter_input(INPUT_GET, 'options', FILTER_SANITIZE_SPECIAL_CHARS);

$data = filter_var($user_data, FILTER_SANITIZE_STRING);
?>]]></example>

<example title="filter_var_array/filter_input_array" fontsize="1.3em" result="0"><![CDATA[<?php
error_reporting(E_ALL | E_STRICT);
$data = array(
   'product_id'    => 'libgd<script>',
   'component'    => '10',
   'versions'      => '2.0.33',
   'testscalar'    => array('2', '23', '10', '12'),
   'testarray'    => '2',
);

$args = array(
   'product_id'  => FILTER_SANITIZE_ENCODED,
   'component'    => array('filter'    => FILTER_VALIDATE_INT,
                           'flags'    => FILTER_FLAG_ARRAY,
                           'options'  => array('min_range' => 1, 'max_range' => 10)
                           ),
   'versions'    => FILTER_SANITIZE_ENCODED,
   'doesnotexist' => FILTER_VALIDATE_INT,
   'testscalar'  => array(
                           'filter' => FILTER_VALIDATE_INT,
                           'flags'  => FILTER_FLAG_SCALAR,
                           ),
   'testarray'    => array(
                           'filter' => FILTER_VALIDATE_INT,
                           'flags'  => FILTER_FLAG_ARRAY,
                           )

);

// $myinputs = filter_input_array(INPUT_POST, $args);
$myinputs = filter_var_array($data, $args);
var_dump($myinputs);
?>]]></example>

<example title="Output" fontsize="1.3em" hide="1" result="1"><![CDATA[<pre>array(6) {
  ["product_id"]=> array(1) {
    [0]=> string(17) "libgd%3Cscript%3E"
  }
  ["component"]=> array(1) {
    [0]=> int(10)
  }
  ["versions"]=> array(1) {
    [0]=> string(6) "2.0.33"
  }
  ["doesnotexist"]=> NULL
  ["testscalar"]=> bool(false)
  ["testarray"]=> array(1) {
    [0]=> int(2)
  }
}</pre>]]></example>
</slide>
