웹 응용 프로그램을 개발할 때는 종종 기본 필드 설정과 일치하는지 확인하기 위해 사용자가 제출 한 양식 데이터를 확인해야합니다. PHP는 매우 유용한 기능 을 제공하여 배열의 키 이름 차이를 쉽게 비교할 수 있도록 도와줍니다. 이 기사에서는이 기능을 사용하여 양식 제출 된 데이터와 기본 필드의 차이점을 비교하는 방법을 설명합니다.
Array_Diff_Key () 함수는 두 배열의 키를 비교하고 첫 번째 배열에 있지만 두 번째 배열에는 있지 않은 키 값 쌍을 반환하는 데 사용됩니다. 이 함수는 배열의 키 이름 만 비교하지만 키에 해당하는 값을 비교하지는 않습니다.
기본 필드 구성 배열이 있고 사용자가 양식을 통해 일부 데이터를 제출한다고 가정하면이 두 배열을 비교하여 사용자가 제출 한 데이터의 기본 필드에 정의되지 않은 필드를 찾으려고합니다.
먼저 기본 필드가 포함 된 배열 기본 필드가 있다고 가정합니다. 이 필드는 데이터베이스 테이블의 열 이름 또는 웹 사이트의 표준 양식 필드 일 수 있습니다.
$defaultFields = [
'username' => '',
'email' => '',
'password' => '',
'phone' => ''
];
그런 다음 사용자가 FormData 라는 배열에 저장된 양식을 통해 일부 데이터를 제출한다고 가정합니다.
$formData = [
'username' => 'JohnDoe',
'email' => 'john@example.com',
'address' => '123 Main St',
'phone' => '123-456-7890'
];
이 예에서 FormData 에는 사용자 이름 , 이메일 , 주소 및 전화가 포함되어 있지만 주소 필드는 기본 필드에 정의되지 않습니다.
이제 Array_Diff_Key () 함수를 사용 하여이 두 배열을 비교하고 FormData 에서 필드를 찾을 수 있지만 DefaultFields 에서는 그렇지 않습니다.
$diff = array_diff_key($formData, $defaultFields);
print_r($diff);
위의 코드를 실행하면 다음이 출력됩니다.
Array
(
[address] => 123 Main St
)
출력 결과에서 주소 필드는 FormData 에 존재하지만 DefaultFields 에 있지 않은 필드임을 알 수 있습니다. 따라서 사용자가 추가 필드를 제출한다고 결론을 내릴 수 있습니다.
차이를 찾으면 특정 요구에 따라 처리 할 수 있습니다. 예를 들어, 추가 필드가 제출되었거나 해당 추가 필드가 데이터베이스에서 무시된다는 것을 사용자에게 상기시킬 수 있습니다.
if (!empty($diff)) {
foreach ($diff as $key => $value) {
echo "Warning: Unrecognized field '$key' with value '$value'.<br>";
}
}
이 코드는 정의되지 않은 모든 필드에 대한 경고를 출력합니다.
경우에 따라 배열 데이터에서 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 으로 쉽게 바꿀 수 있습니다.
php의 array_diff_key () 함수를 사용하면 양식 데이터와 기본 필드의 차이를 쉽게 찾을 수 있습니다. 이는 사용자 입력, 양식 검증 및 데이터 정리를 처리하는 데 매우 유용합니다. preg_replace () 와 같은 다른 PHP 함수와 결합하여 URL 데이터가 포함 된 배열을 처리하여 도메인 이름의 통일성을 보장 할 수도 있습니다.
이 기사가 실제 개발에서 Array_Diff_Key () 기능을 사용하는 방법을 더 잘 이해하는 데 도움이되기를 바랍니다.