현재 위치: > 최신 기사 목록> filter_var_array 란 무엇입니까? 한 기사에서 기본 사용 및 실제 응용 시나리오 이해

filter_var_array 란 무엇입니까? 한 기사에서 기본 사용 및 실제 응용 시나리오 이해

gitbox 2025-05-31

PHP에서 데이터 필터링 및 검증은 사용자 입력 처리에 필수적입니다. 우리는 종종 Filter_var ()를 사용하여 단일 데이터 값을 확인하지만 양식에 의해 제출 된 여러 필드와 같은 데이터 세트가있는 경우 각 필드마다 다른 검증 규칙이 필요합니다. 현재 Filter_var_array ()를 사용하는 것이 매우 적절합니다.

filter_var_array 란 무엇입니까?

Filter_var_array () 는 PHP가 여러 데이터 값 , 일반적으로 $ _get 또는 $ _post 의 데이터와 같은 연관 배열을 필터링하기 위해 제공하는 함수입니다. 이 기능은 정의하는 필터 규칙에 따라 각 필드를 별도로 처리 할 수 ​​있습니다.

기능 프로토 타입은 다음과 같습니다.

 filter_var_array(array $data, array|int $definition, bool $add_empty = true): array|false|null
  • $ 데이터 : 처리 할 배열 데이터.

  • $ 정의 : 정수 (모든 필드에 동일한 필터 사용) 또는 배열 (다른 필드에 대해 다른 필터 정의) 일 수있는 필터링 규칙.

  • $ add_empty : 결과에 일치하는 키를 포함할지 여부, 기본값은 true 입니다.

기본 사용

사서함과 연령 필드가있는 사용자 로그인 양식이 있다고 가정합니다. 사서함, 정수 검증 연령 검증 및 범위를 제한하려고합니다. filter_var_array ()를 사용하여 다음과 같이 처리하십시오.

 $data = [
    'email' => '[email protected]',
    'age' => '25'
];

$filters = [
    'email' => FILTER_VALIDATE_EMAIL,
    'age' => [
        'filter' => FILTER_VALIDATE_INT,
        'options' => [
            'min_range' => 18,
            'max_range' => 99
        ]
    ]
];

$result = filter_var_array($data, $filters);

print_r($result);

출력은 다음과 같습니다.

 Array
(
    [email] => [email protected]
    [age] => 25
)

확인이 실패하면 해당 값 이 False가 됩니다.

실제 응용 시나리오

1. 양식 검증

Filter_var_array ()는 명확한 유효성 검사 규칙 및 배치 처리를 정의 할 수 있기 때문에 양식 데이터 처리에 특히 적합합니다.

 $_POST = [
    'username' => 'jack',
    'email' => '[email protected]',
    'age' => '17'
];

$rules = [
    'username' => [
        'filter' => FILTER_SANITIZE_STRING,
        'flags' => FILTER_FLAG_NO_ENCODE_QUOTES
    ],
    'email' => FILTER_VALIDATE_EMAIL,
    'age' => [
        'filter' => FILTER_VALIDATE_INT,
        'options' => ['min_range' => 18]
    ]
];

$cleanData = filter_var_array($_POST, $rules);

print_r($cleanData);

이 예에서 나이가 18 세 미만인 경우 반환 된 연령은 거짓이 되어 확인이 실패했다고 알려줍니다.

2. 기본값과 함께 사용하십시오

Filter_Default 및 사용자 정의 옵션을 통해 기본값을 설정할 수 있으며 필드가 없으면 의미있는 출력을 얻을 수도 있습니다.

 $data = [
    'email' => 'wrong-format',
    // 'age' => missing
];

$rules = [
    'email' => FILTER_VALIDATE_EMAIL,
    'age' => [
        'filter' => FILTER_VALIDATE_INT,
        'options' => ['default' => 18]
    ]
];

$result = filter_var_array($data, $rules);

print_r($result);

산출:

 Array
(
    [email] => false
    [age] => 18
)

3. API 요청과 함께 사용하십시오

타사 API가 제출 한 데이터를 받으면 filter_var_array ()를 사용하면 데이터 보안을 신속하게 보장 할 수 있습니다.

 $json = file_get_contents('https://api.gitbox.net/user/input');
$input = json_decode($json, true);

$filters = [
    'email' => FILTER_VALIDATE_EMAIL,
    'subscription' => FILTER_VALIDATE_BOOLEAN
];

$validated = filter_var_array($input, $filters);

주목해야 할 것

  • 들어오는 $ 데이터가 배열이 아닌 경우 filter_var_array ()는 false를 반환합니다.

  • 일부 키가 $ 정의 에 있지 않지만 $ add_empty가 True 로 설정된 경우 NULL 값으로 반환 결과에 여전히 나타납니다.

  • 데이터를 검증하는 대신 데이터를 청소하는 Filter_Sanitize_* 유형 필터를 사용하는 데주의가 필요합니다.

요약

Filter_Var_Array ()는 데이터 세트의 검증 및 청소를 일련의 데이터 세트를 배치하여 코드를보다 간결하고 유지 관리 할 수 ​​있도록하는 데 도움이되는 매우 강력한 도구입니다. 양식 데이터, API 요청 또는 멀티 필드 검증이 필요한 시나리오를 처리 할 수 ​​있습니다.

Filter_var_array ()를 합리적으로 사용하는 법을 배우면 PHP 프로젝트의 데이터 처리의 보안 및 효율성을 크게 향상시킬 수 있습니다.