filter_var_array

(PHP 5 >= 5.2.0)

filter_var_arrayGets multiple variables and optionally filters them

Description

mixed filter_var_array ( array $data [, mixed $definition [, bool $add_empty = true ]] )

This function is useful for retrieving many values without repetitively calling filter_var().

Parameters

data

An array with string keys containing the data to filter.

definition

An array defining the arguments. A valid key is a string containing a variable name and a valid value is either a filter type, or an array optionally specifying the filter, flags and options. If the value is an array, valid keys are filter which specifies the filter type, flags which specifies any flags that apply to the filter, and options which specifies any options that apply to the filter. See the example below for a better understanding.

This parameter can be also an integer holding a filter constant. Then all values in the input array are filtered by this filter.

add_empty

Add missing keys as NULL to the return value.

Return Values

An array containing the values of the requested variables on success, or FALSE on failure. An array value will be FALSE if the filter fails, or NULL if the variable is not set.

Examples

Example #1 A filter_var_array() example

<?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_FORCE_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_REQUIRE_SCALAR,
                           ),
    
'testarray'    => array(
                            
'filter' => FILTER_VALIDATE_INT,
                            
'flags'  => FILTER_FORCE_ARRAY,
                           )

);

$myinputs filter_var_array($data$args);

var_dump($myinputs);
echo 
"\n";
?>

The above example will output:

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)
  }
}

Changelog

Version Description
5.4.0 Added add_empty parameter.

See Also

Коментарии

<?php
//an example of simply sanitize an array..

$data = array(
               
'<b>bold</b>',
               
'<script>javascript</script>',
               
'P*}i@893746%%%p*.i.*}}|.dw<?php echo "echo works!!";?>');

$myinputs filter_var_array($data,FILTER_SANITIZE_STRING);

var_dump($myinputs);

//OUTPUT:
//formarray(3) { [0]=> string(4) "bold" [1]=> string(10) "javascript" [2]=> string(26) "P*}i@893746%%%p*.i.*}}|.dw" }
?>
2009-06-06 18:45:35
http://php5.kiev.ua/manual/ru/function.filter-var-array.html
for those who would like to know how to use regular expressions with filter var array. taken from w3 schools.

$data = array(
 
  'regxp' =>  'michael'
 
  );

$args = array(
 
  'regxp'  =>  array(
 
  'filter'=>FILTER_VALIDATE_REGEXP | FILTER_SANITIZE_STRING,
  'options'=>array('regexp'=>"/^michael$/"),
 
  ));
 
$output=filter_var_array($data,$args);

var_dump($output); // array(1) { ["regxp"]=> string(7) "michael" } 

- bruce tong
2017-07-10 21:10:54
http://php5.kiev.ua/manual/ru/function.filter-var-array.html
an update to previous post.

using regular expressions along with another filter in filter var array

$data = array(
 
  'regxp' =>  "`\tcafé\n`"
 
  );

$args = array( 
 
  'regxp'  =>  array(
 
  'filter'=>FILTER_VALIDATE_REGEXP | FILTER_SANITIZE_STRING,
  'flags'=>FILTER_FLAG_STRIP_HIGH | FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_BACKTICK,
  'options'=>array('regexp'=>"/t(.*)/"),
 
  ));
 
$output=filter_var_array($data,$args);

var_dump($output); // array(1) { ["regxp"]=> string(3) "caf" } 

-bruce tong
2017-07-12 20:44:04
http://php5.kiev.ua/manual/ru/function.filter-var-array.html
Автор:
$emails = [
    'a' => 'email1@domain.com',
    'b' => '<email2>@domain.com',
];

$result = filter_var_array($emails, FILTER_SANITIZE_EMAIL);
print_r($result);

// the result will be...
// array('a' => 'email1@domain.com', 'b' => 'email2@domain.com')
2019-06-19 07:37:53
http://php5.kiev.ua/manual/ru/function.filter-var-array.html
Автор:
To apply the same filter to many params/keys, use array_fill_keys().

<?php
$data 
= array(
   
'product_id'    => 'libgd<script>',
   
'component'     => '    10    ',
   
'versions'      => '2.0.33',
   
'testscalar'    => array('2''23''10''12'),
   
'testarray'     => '2',
);
$keys = array(
   
'product_id',
   
'component',
   
'versions',
   
'doesnotexist',
   
'testscalar',
   
'testarray'
);
$options = array(
   
'filter' => FILTER_CALLBACK,
   
'options' => function ($value) {
        return 
trim(strip_tags($value));
    },
);
$args array_fill_keys($keys$options);
/* Result
$args = array(
    'product_id' => array(
        'filter' => FILTER_CALLBACK,
        'options' => function ($value) {
            return trim(strip_tags($value));
        },
    ),
    'component' => array(
        'filter' => FILTER_CALLBACK,
        'options' => function ($value) {
            return trim(strip_tags($value));
        },
    ),
    'versions' => array(
        'filter' => FILTER_CALLBACK,
        'options' => function ($value) {
            return trim(strip_tags($value));
        },
    ),
    'doesnotexist' => array(
        'filter' => FILTER_CALLBACK,
        'options' => function ($value) {
            return trim(strip_tags($value));
        },
    ),
    'testscalar' => array(
        'filter' => FILTER_CALLBACK,
        'options' => function ($value) {
            return trim(strip_tags($value));
        },
    ),
    'testarray' => array(
        'filter' => FILTER_CALLBACK,
        'options' => function ($value) {
            return trim(strip_tags($value));
        },
    ),
);
*/

$myinputs filter_var_array($data$args);
var_dump($myinputs);

Output:

array(
6) {
 
'product_id' =>
 
string(5"libgd"
  'component' 
=>
 
string(2"10"
  'versions' 
=>
 
string(6"2.0.33"
  'doesnotexist' 
=>
 
NULL
 
'testscalar' =>
  array(
4) {
    [
0] =>
   
string(1"2"
   
[1] =>
   
string(2"23"
   
[2] =>
   
string(2"10"
   
[3] =>
   
string(2"12"
 
}
 
'testarray' =>
 
string(1"2"
}
2023-01-19 21:07:06
http://php5.kiev.ua/manual/ru/function.filter-var-array.html

    Поддержать сайт на родительском проекте КГБ