현재 위치: > 최신 기사 목록> 양식 제출 데이터와 기본 필드의 차이 비교

양식 제출 데이터와 기본 필드의 차이 비교

M66 2025-05-15

웹 응용 프로그램을 개발할 때는 종종 기본 필드 설정과 일치하는지 확인하기 위해 사용자가 제출 한 양식 데이터를 확인해야합니다. PHP는 매우 유용한 기능 제공하여 배열의 키 이름 차이를 쉽게 비교할 수 있도록 도와줍니다. 이 기사에서는이 기능을 사용하여 양식 제출 된 데이터와 기본 필드의 차이점을 비교하는 방법을 설명합니다.

1. array_diff_key () 함수 소개

Array_Diff_Key () 함수는 두 배열의 키를 비교하고 첫 번째 배열에 있지만 두 번째 배열에는 있지 않은 키 값 쌍을 반환하는 데 사용됩니다. 이 함수는 배열의 키 이름 만 비교하지만 키에 해당하는 값을 비교하지는 않습니다.

2. 사용 시나리오

기본 필드 구성 배열이 있고 사용자가 양식을 통해 일부 데이터를 제출한다고 가정하면이 두 배열을 비교하여 사용자가 제출 한 데이터의 기본 필드에 정의되지 않은 필드를 찾으려고합니다.

예 : 양식 데이터를 기본 필드와 비교합니다

기본 필드

먼저 기본 필드가 포함 된 배열 기본 필드가 있다고 가정합니다. 이 필드는 데이터베이스 테이블의 열 이름 또는 웹 사이트의 표준 양식 필드 일 수 있습니다.

 $defaultFields = [
    'username' => '',
    'email' => '',
    'password' => '',
    'phone' => ''
];

양식 제출 데이터

그런 다음 사용자가 FormData 라는 배열에 저장된 양식을 통해 일부 데이터를 제출한다고 가정합니다.

 $formData = [
    'username' => 'JohnDoe',
    'email' => 'john@example.com',
    'address' => '123 Main St',
    'phone' => '123-456-7890'
];

이 예에서 FormData 에는 사용자 이름 , 이메일 , 주소전화가 포함되어 있지만 주소 필드는 기본 필드에 정의되지 않습니다.

4. array_diff_key ()를 사용하여 차이를 비교하십시오

이제 Array_Diff_Key () 함수를 사용 하여이 두 배열을 비교하고 FormData 에서 필드를 찾을 수 있지만 DefaultFields 에서는 그렇지 않습니다.

 $diff = array_diff_key($formData, $defaultFields);
print_r($diff);

위의 코드를 실행하면 다음이 출력됩니다.

 Array
(
    [address] => 123 Main St
)

출력 결과에서 주소 필드는 FormData 에 존재하지만 DefaultFields 에 있지 않은 필드임을 알 수 있습니다. 따라서 사용자가 추가 필드를 제출한다고 결론을 내릴 수 있습니다.

5. 차이를 처리하십시오

차이를 찾으면 특정 요구에 따라 처리 할 수 ​​있습니다. 예를 들어, 추가 필드가 제출되었거나 해당 추가 필드가 데이터베이스에서 무시된다는 것을 사용자에게 상기시킬 수 있습니다.

 if (!empty($diff)) {
    foreach ($diff as $key => $value) {
        echo "Warning: Unrecognized field '$key' with value '$value'.<br>";
    }
}

이 코드는 정의되지 않은 모든 필드에 대한 경고를 출력합니다.

6. URL 교체 예제

경우에 따라 배열 데이터에서 URL 주소를 사용할 수 있습니다. 배열의 URL 도메인 이름을 M66.NET 으로 바꾸려고한다고 가정 해 봅시다. 정규식을 통해 달성 할 수 있습니다.

 function replaceUrlDomain($data) {
    $pattern = '/https?:\/\/([a-zA-Z0-9.-]+)/';
    $replacement = 'https://m66.net';
    return preg_replace($pattern, $replacement, $data);
}

// 예 URL 데이터
$urlData = "Visit our site at https://example.com or http://another.com.";
$updatedData = replaceUrlDomain($urlData);
echo $updatedData; // 산출:Visit our site at https://m66.net or https://m66.net.

위의 방법을 사용하면 모든 URL의 도메인 이름을 M66.net 으로 쉽게 바꿀 수 있습니다.

7. 요약

php의 array_diff_key () 함수를 사용하면 양식 데이터와 기본 필드의 차이를 쉽게 찾을 수 있습니다. 이는 사용자 입력, 양식 검증 및 데이터 정리를 처리하는 데 매우 유용합니다. preg_replace () 와 같은 다른 PHP 함수와 결합하여 URL 데이터가 포함 된 배열을 처리하여 도메인 이름의 통일성을 보장 할 수도 있습니다.

이 기사가 실제 개발에서 Array_Diff_Key () 기능을 사용하는 방법을 더 잘 이해하는 데 도움이되기를 바랍니다.