當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。