Filter filter_input_array

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

filter_input_array — 외부 변수를 가져오고 선택적으로 필터링합니다.


설명

filter_input_array(int $type, array|int $options = FILTER_DEFAULT, bool $add_empty = true): array|false|null

이 함수는 filter_input()을 반복적으로 호출하지 않고 많은 값을 검색하는 데 유용합니다.


매개변수

type
INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER 또는 INPUT_ENV 중 하나입니다.
options
인수를 정의하는 배열입니다. 유효한 키는 변수 이름을 포함하는 문자열이고 유효한 값은 filter type이거나 필터, 플래그 및 옵션을 선택적으로 지정하는 배열입니다. 값이 배열인 경우 유효한 키는 filter type을 지정하는 filter, 필터에 적용되는 플래그를 지정하는 flags 및 필터에 적용되는 옵션을 지정하는 options입니다. 더 나은 이해를 위해 아래 예를 참조하십시오.

이 매개변수는 filter constant를 보유하는 정수일 수도 있습니다. 그런 다음 입력 배열의 모든 값이 이 필터로 필터링됩니다.

add_empty
누락된 키를 반환 값에 null로 추가합니다.

반환 값

성공 시 요청된 변수의 값을 포함하는 배열입니다. type으로 지정된 입력 배열이 채워지지 않은 경우 함수는 FILTER_NULL_ON_FAILURE 플래그가 제공되지 않으면 null을 반환하고 그렇지 않으면 false를 반환합니다. 다른 실패의 경우 false가 반환됩니다.

필터가 실패하면 배열 값은 false가 되고 변수가 설정되지 않으면 null이 됩니다. 또는 FILTER_NULL_ON_FAILURE 플래그가 사용되면 변수가 설정되지 않으면 false를 반환하고 필터가 실패하면 null을 반환합니다. add_empty 매개변수가 false이면 설정되지 않은 변수에 대해 배열 요소가 추가되지 않습니다.


Examples

예제 #1 filter_input_array() 예제

                  
<?php

/* data actually came from POST
$_POST = array(
    'product_id' => 'libgd<script>',
    'component'  => array('10'),
    'version'    => '2.0.33',
    'testarray'  => array('2', '23', '10', '12'),
    'testscalar' => '2',
);
*/

$args = array(
    'product_id'   => FILTER_SANITIZE_ENCODED,
    'component'    => array('filter'    => FILTER_VALIDATE_INT,
                            'flags'     => FILTER_REQUIRE_ARRAY,
                            'options'   => array('min_range' => 1, 'max_range' => 10)
                           ),
    'version'      => 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_REQUIRE_ARRAY,
                           )

);

$myinputs = filter_input_array(INPUT_POST, $args);

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

위의 예는 다음을 출력합니다.

array(6) {
  ["product_id"]=>
  string(17) "libgd%3Cscript%3E"
  ["component"]=>
  array(1) {
    [0]=>
    int(10)
  }
  ["version"]=>
  string(6) "2.0.33"
  ["doesnotexist"]=>
  NULL
  ["testscalar"]=>
  int(2)
  ["testarray"]=>
  array(4) {
    [0]=>
    int(2)
    [1]=>
    int(23)
    [2]=>
    int(10)
    [3]=>
    int(12)
  }
}
                

메모

메모: INPUT_SERVER 배열에는 나중에 $_SERVER에 삽입되기 때문에 REQUEST_TIME 키가 없습니다.


기타