当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


PHP filter_input_array()用法及代码示例


filter_input_array()函数是PHP中的内置函数,用于获取外部变量(例如,从表单输入中获取)并对其进行过滤(如果已指定)。此函数类似于filter_input()函数,但唯一的区别是filter_input()过滤单个值,但filter_input_array()根据提供的选项过滤整个数组。它对于检索/过滤许多值很有用,而不是多次调用filter_input()。这是PHP中的新函数,仅在PHP 5.2或更高版本的PHP中有效。

用法:

mixed filter_input_array( $type_of_data, $definition, $add_empty_parameter )

参数:此函数接受上述和以下所述的三个参数:


  • type_of_data:它是必填参数。它保存要检查的数据的输入类型。可用的选项有:
    • INPUT_GET
    • INPUT_POST
    • INPUT_COOKIE
    • INPUT_SERVER
    • INPUT_ENV
  • definition:它是可选参数。它指定过滤器参数或参数的数组。有效的数组键作为变量名,有效值作为过滤器名或ID,或者指定过滤器,标志和选项的数组。该参数也可以是单个过滤器名称/ID,就像filter_input()一样,然后输入数组中的所有值都由指定的过滤器过滤。
  • add_empty_parameter:它是可选参数。它是一个布尔参数。设置为True时,它将缺少的键作为NULL添加到返回值。其默认值为True。

返回值:它返回包含成功和失败变量值的数组,并返回False。如果未填充按类型指定的输入数组,则如果未给出FILTER_NULL_ON_FAILURE标志,则函数返回NULL,否则返回False。对于其他失败,返回False。

以下示例程序旨在说明PHP中的filter_input_array()函数:

程序1:

<?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_GET, $filters)); 
  
?>

输出:

注意:此示例可能不提供在线IDE上的预期结果,因为它不支持GET或POST方法中的参数传递。因此,尝试在某些PHP托管服务器或localhost中运行它,并通过GET或POST方法传递参数的值。

程序2:
数据来自POST方法:

$_POST = array(
    'product_id' => '234<A>',
    'component'  => array('10'),
    'version'    => '<2.8.9',
    'array2'  => array('45', '1'),
    'scalar_data' => '2',
);
<?php 
// PHP program to uses filter_input_array() Function 
  
error_reporting(E_ALL | E_STRICT); 
  
$args = array( 
    'id' => FILTER_SANITIZE_ENCODED, 
    'array1' => array( 
        'filter' => FILTER_VALIDATE_INT, 
        'flags' => FILTER_REQUIRE_ARRAY,  
        'options' => array( 
            'min_range' => 1, 
            'max_range' => 10 
        ) 
    ), 
    'version' => FILTER_SANITIZE_ENCODED, 
    'noparameter' => FILTER_VALIDATE_INT, 
    'scalar_data' => array( 
        'filter' => FILTER_VALIDATE_INT, 
        'flags'  => FILTER_REQUIRE_SCALAR, 
    ), 
    'array2' => array( 
        'filter' => FILTER_VALIDATE_INT, 
        'flags'  => FILTER_REQUIRE_ARRAY, 
    ) 
); 
    
$allinputs = filter_input_array(INPUT_GET, $args); 
    
var_dump($allinputs); 
echo "\n"; 
  
?>

输出:

注意:此示例可能不提供在线IDE上的预期结果,因为它不支持GET或POST方法中的参数传递。因此,尝试在某些PHP托管服务器或localhost中运行它,并通过GET或POST方法传递参数的值。

参考文献: http://php.net/manual/en/function.filter-input-array.php



相关用法


注:本文由纯净天空筛选整理自gekcho大神的英文原创作品 PHP | filter_input_array() Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。