filter_var_array와 filter_input_array의 차이점은 무엇입니까? 프로젝트에 어느 것이 더 낫습니까? ]]
PHP에서 데이터 필터링은 응용 프로그램 보안을 보장하고 악의적 인 공격을 방지하는 데 중요한 단계입니다. filter_var_array 및 filter_input_array는 입력 데이터를 필터링하고 검증하는 데 사용되는 일반적으로 사용되는 두 가지 기능입니다. 이 기사는이 두 기능을 비교하여 개발자가 차이점을 이해하고 프로젝트 요구에 따라 적절한 기능을 선택할 수 있도록 도와줍니다.
Filter_var_array 는 개발자가 여러 변수를 동시에 필터링 할 수있는 Filter_Var 함수의 배열 버전입니다. 두 가지 매개 변수를받습니다.
첫 번째 매개 변수는 필터링 할 데이터를 포함하는 배열입니다.
두 번째 매개 변수는 필터링 규칙을 정의하고 Filter_* 상수를 통해 설정할 수있는 배열입니다.
<span><span><span class="hljs-variable">$input_data</span></span><span> = [
</span><span><span class="hljs-string">'email'</span></span><span> => </span><span><span class="hljs-string">'[email protected]'</span></span><span>,
</span><span><span class="hljs-string">'age'</span></span><span> => </span><span><span class="hljs-string">'25'</span></span><span>
];
</span><span><span class="hljs-variable">$filters</span></span><span> = [
</span><span><span class="hljs-string">'email'</span></span><span> => FILTER_VALIDATE_EMAIL,
</span><span><span class="hljs-string">'age'</span></span><span> => FILTER_VALIDATE_INT
];
</span><span><span class="hljs-variable">$filtered_data</span></span><span> = </span><span><span class="hljs-title function_ invoke__">filter_var_array</span></span><span>(</span><span><span class="hljs-variable">$input_data</span></span><span>, </span><span><span class="hljs-variable">$filters</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$filtered_data</span></span><span>);
</span></span>
이 예에서는 이메일이 filter_validate_email 에 의해 확인되며, 유효한 정수인지 여부를 확인합니다. Filter_var_array는 필터링 된 데이터가 포함 된 배열을 반환합니다.
filter_input_array 및 filter_var_array는 비슷한 기능을 가지고 있지만 주로 PHP의 입력 스트림 및 필터에서 데이터를 얻는 데 사용됩니다. 이 기능은 일반적으로 $ _get , $ _post , $ _cookie 또는 양식의 $ _request 에서 입력 데이터를 처리하는 데 사용됩니다. 또한 두 가지 매개 변수를 수신합니다.
첫 번째 매개 변수는 입력 데이터의 소스 (예 : input_get , input_post 등)를 지정하는 상수입니다.
두 번째 매개 변수는 필터 _var_array 와 유사한 필터링 규칙 배열입니다.
<span><span><span class="hljs-variable">$filters</span></span><span> = [
</span><span><span class="hljs-string">'email'</span></span><span> => FILTER_VALIDATE_EMAIL,
</span><span><span class="hljs-string">'age'</span></span><span> => FILTER_VALIDATE_INT
];
</span><span><span class="hljs-variable">$filtered_data</span></span><span> = </span><span><span class="hljs-title function_ invoke__">filter_input_array</span></span><span>(INPUT_POST, </span><span><span class="hljs-variable">$filters</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$filtered_data</span></span><span>);
</span></span>
이 예에서 Filter_Input_Array는 $ _post 에서 데이터를 가져오고 해당 필터링 규칙을 적용합니다.
filter_var_array는 임의의 배열에서 데이터를 필터링하는 데 사용됩니다. 입력 데이터 소스는 전적으로 개발자가 제공하며 데이터베이스, 파일, 세션 또는 다른 곳의 데이터 일 수 있습니다.
Filter_input_array 는 주로 PHP의 내장 입력 스트림 (예 : $ _get , $ _post 등)에서 데이터를 얻는 데 사용됩니다. 일반적으로 양식 처리, URL 매개 변수, 쿠키 등과 같은 요청 데이터를 필터링하는 데 사용됩니다.
filter_var_array는 배열을 입력으로 직접 전달하는 반면 Filter_Input_array는 $ _post , $ _get 등과 같은 PHP의 글로벌 입력 배열에 따라 다릅니다.
filter_var_array는 데이터의 출처에 관계없이 필터링 해야하는 모든 배열 데이터에 적합합니다. Filter_Input_Array는 사용자 요청, 특히 양식 제출 또는 URL 매개 변수에서 데이터를 처리하는 데 더 적합합니다.
외부 요청 (예 : 양식 제출, URL 매개 변수 등)에서 데이터를 처리하고 필터링하고 확인하는 경우 Filter_Input_Array가 더 적합한 선택입니다. 입력 스트림에서 데이터를 직접 처리하고 PHP 글로벌 변수 (예 : $ _get , $ _post )에서보다 편리하게 사용할 수 있습니다.
처리중인 데이터가 PHP의 입력 스트림에서 직접 제공되지 않지만 다른 소스 (예 : 데이터베이스, 파일 또는 세션 데이터)에서 나오는 경우 Filter_var_Array는 보다 유연하며 필요에 따라 배열을 필터링 할 수 있습니다.
filter_var_array 및 filter_input_array 는 모두 매우 유용한 도구입니다. 주요 차이점은 입력 데이터 소스와 응용 프로그램 시나리오에 있습니다. 선택할 기능은 귀하의 요구에 따라 다릅니다.
양식, URL 매개 변수, 쿠키 등과 같은 입력 스트림 데이터를 처리 해야하는 경우 filter_input_array를 선택하십시오.
다른 소스에서 데이터를 필터링 해야하는 경우 filter_var_array를 선택하십시오.
개발 프로세스 중에 다른 상황에 따라 적절한 기능을 선택하면 코드의 보안 및 유지 관리가 효과적으로 향상 될 수 있습니다.