웹 개발에서 양식 데이터의 청소 및 검증은 데이터 보안 및 정확성을 보장하는 중요한 단계입니다. PHP의 Array_Filter 함수는 배열에서 요소를 필터링하는 간단하고 효율적인 방법을 제공합니다. Array_Filter 와 사용자 정의 콜백 기능을 결합하여 사용자가 제출 한 양식 데이터를 정리하고 데이터를 처리하기 전에 확인할 수 있습니다.
Array_Filter 함수는 배열에서 요소를 필터링하고 콜백 함수에 의해 테스트 된 요소가 포함 된 새로운 배열을 반환하는 데 사용됩니다. 기본 구문은 다음과 같습니다.
array_filter(array $array, ?callable $callback = null, int $mode = 0): array
$ 배열 : 입력 배열 필터.
$ 콜백 : 배열 요소를 필터링하는 데 사용되는 콜백 기능. 콜백 함수가 제공되지 않으면 값의 값 (예 : 0 , null , false , empty string " 등)이있는 요소가 기본적으로 삭제됩니다.
$ 모드 : 필터링 방법을 지정합니다. 일반적으로 설정할 필요가 없으며 기본값 0 만 사용하십시오.
사용자가 사용자 이름, 이메일 및 휴대폰 번호와 같은 정보를 제출 한 양식이 있다고 가정합니다. 우리는이 데이터를 정리하고 불필요한 공간이나 불법 문자를 제거하려고합니다.
<?php
// 사용자가 제출 한 데이터
$formData = [
'username' => ' john_doe ',
'email' => ' john.doe@m66.net ',
'phone' => ' 123-456-7890 ',
'address' => ' '
];
// 데이터 기능 정리:공간과 불법 문자를 제거하십시오
$cleanData = array_map('trim', $formData);
// 정리 된 데이터를 출력하십시오
print_r($cleanData);
?>
위의 코드에서는 array_map ( 'trim', $ formdata)은 트림 함수를 통해 각 양식 필드 값 전후에 공간을 제거합니다. 데이터를 더욱 정리하고 확인하려면 Array_Filter를 사용하여 요구 사항을 충족하지 않는 필드를 제거 할 수 있습니다.
양식 데이터 확인은 요구 사항을 충족시키는 중요한 단계입니다. 예를 들어, 사용자 이름에 공간이 없거나 이메일 형식이 정확하거나 전화 번호가 유효한지 확인하려고합니다.
<?php
// 사용자가 제출 한 데이터
$formData = [
'username' => ' john_doe ',
'email' => ' john.doe@m66.net ',
'phone' => ' 123-456-7890 ',
'address' => ' '
];
// 데이터 정리:과도한 공간을 제거하십시오
$cleanData = array_map('trim', $formData);
// 데이터를 확인하십시오:사용array_filter불법 데이터를 필터링하십시오
$validData = array_filter($cleanData, function($value, $key) {
switch ($key) {
case 'username':
return preg_match('/^\S+$/', $value); // 사용자 이름에 공백이 없는지 확인하십시오
case 'email':
return filter_var($value, FILTER_VALIDATE_EMAIL); // 사서함 형식을 확인하십시오
case 'phone':
return preg_match('/^\d{3}-\d{3}-\d{4}$/', $value); // 휴대폰 번호 형식을 확인하십시오
default:
return !empty($value); // 다른 필드는 비어있을 수 없습니다
}
}, ARRAY_FILTER_USE_BOTH);
// 출력 유효한 데이터
print_r($validData);
?>
이 예에서는 콜백 함수와 함께 Array_Filter를 사용하여 각 양식 필드를 확인합니다. 콜백 함수는 각 필드의 내용이 특정 규칙을 준수하는지 확인합니다.
사용자 이름 필드는 공백이 없도록합니다.
이메일 필드는 형식이 이메일 표준을 충족하도록합니다.
전화 필드는 전화 번호가 특정 형식 (예 : 123-456-7890 )을 충족하도록합니다.
필드가 요구 사항을 충족하지 않으면 Array_Filter는 불법 데이터를 필터링하고 법적 필드만으로 새 배열을 반환합니다.
사용자가 잘못된 데이터를 제출할 때 프롬프트를 제공하려면 $ validData 가 비어 있는지 확인하여 수행 할 수 있습니다.
<?php
// 가정$validData위의 코드를 통해 생성되었습니다
if (empty($validData)) {
echo "제출 된 모든 데이터는 유효하지 않습니다,입력을 확인하십시오。";
} else {
echo "데이터 검증이 통과되었습니다!";
// 추가 프로세스 유효한 데이터
}
?>
배열 $ ValidData가 비어있는 경우 사용자가 제출 한 모든 데이터가 확인 규칙을 준수하지 않음을 의미합니다. 이 결과에 따라 사용자에게 피드백을받을 수 있습니다.