PHP filter_input_array() funktionen

Definition och användning

filter_input_array() funktionen hämtar flera inmatningar från skriptets yttre och filtrerar dem.

Denna funktion behöver inte kalla på filter_input() igen, vilket är användbart för att filtrera flera inmatningsvariabler.

Denna funktion kan hämta inmatning från olika källor:

  • INPUT_GET
  • INPUT_POST
  • INPUT_COOKIE
  • INPUT_ENV
  • INPUT_SERVER
  • INPUT_SESSION (Ännu inte implementerat)
  • INPUT_REQUEST (Ännu inte implementerat)

Om det lyckas returneras det filtrerade data, om det misslyckas returneras false.

Syntaks

filter_input(input_type, args)
Parameter Beskrivning
input_type Nödvändigt. Ange inmatningstyp. Se listan ovan för möjliga typer.
args

可选。规定过滤器参数数组。

合法的数组键是变量名。合法的值是过滤器 ID,或者规定过滤器、标志以及选项的数组。

该参数也可以是一个单独的过滤器 ID,如果是这样,输入数组中的所有值由指定过滤器进行过滤。

提示和注释

提示:参见完整的 PHP Filter 参考手册,查看可与该函数一同使用的过滤器。

实例

在此例中,我们使用 filter_input_array() 函数来过滤三个 POST 变量。所接受的 POST 变量是姓名、年龄以及电子邮件地址:

<?php
$filters = array
 (
 "name" => array
  (
  "filter"=>FILTER_CALLBACK,
  "flags"=>FILTER_FORCE_ARRAY,
  "options"=>"ucwords"
  ),
 "age" => array
  (
  "filter"=>FILTER_VALIDATE_INT,
  "options"=>array
   (
   "min_range"=>1,
   "max_range"=>120
   )
  ),
 "email"=> FILTER_VALIDATE_EMAIL,
 );
print_r(filter_input_array(INPUT_POST, $filters));
?>

输出类似:

Array
 (
 [name] => Peter
 [age] => 41
 [email] => peter@example.com
 )