현재 위치: > 최신 기사 목록> php의 strncmp () 함수 : 문자열, 파일 및 배열을 비교하는 방법

php의 strncmp () 함수 : 문자열, 파일 및 배열을 비교하는 방법

gitbox 2025-06-17

strncmp () 함수는 무엇입니까?

PHP에서 strncmp () 함수는 두 문자열의 첫 번째 n 문자를 비교하고 비교 결과를 반환하는 데 사용됩니다. 이것은 특히 문자열 접두사를 엄격하게 일치시켜야 할 때 많은 경우에 매우 유용합니다. strstrs ()와 달리 strncmp ()는 단순한 부분 일치가 아니라 두 문자열의 첫 N 문자를 비교하는 것입니다.

이 함수는 세 가지 매개 변수를 허용합니다. 첫 번째 매개 변수는 첫 번째 문자열이고 두 번째 매개 변수는 두 번째 문자열이고 세 번째는 비교할 문자 수입니다.

 
$string1 = 'apple';
$string2 = 'banana';
$result = strncmp($string1, $string2, 3);
echo $result;

위의 코드에서는 문자열 'Apple'과 'Banana'의 처음 세 문자를 비교합니다. 'A'의 ASCII 코드는 97이고 'B'의 ASCII 코드는 98이고 97은 98보다 작기 때문에 반환 결과는 -1입니다. 처음 두 문자 만 비교하면 'ap'및 'ba' ''ascii 값이 같기 때문에 결과는 0입니다.

문자열과 strncmp () 함수 비교의 응용 시나리오

1. strncmp ()를 사용하여 비밀번호를 비교하십시오

strncmp ()는 일반 텍스트 암호와 해시 암호를 안전하게 비교하는 데 사용될 수 있습니다. 이 경우, 우리는 종종 서버 측에 해시 값을 저장하고, 비교할 때, 우리는 검증을 위해 일반 텍스트 암호의 해시 값을 사용합니다.

 
$password = 'password1';
$hashed_password = md5($password);
// 일반 텍스트 암호를 데이터베이스에 해시합니다
// ...

// 입력 한 암호를 데이터베이스에 저장된 암호와 비교
$string1 = $hashed_password;
$string2 = $db_password;
$result = strncmp($string1, $string2, strlen($string1));

if ($result == 0) {
    echo 'Password match';
} else {
    echo 'Password does not match';
}

위의 코드에서는 사용자가 입력 한 암호를 데이터베이스에 저장된 해시 값과 비교하여 비밀번호가 일치하는지 확인합니다. '비밀번호 일치'는 암호가 일치 할 때만 출력됩니다.

2. strncmp ()를 사용하여 파일 내용을 비교하십시오

때로는 두 파일의 내용을 비교해야합니다. 이 요구 사항은 strncmp () 함수를 사용하여 쉽게 달성 할 수 있습니다. 다음 코드 예제는 두 파일의 내용을 비교하는 방법을 보여줍니다.

 
$file1 = 'file1.txt';
$file2 = 'file2.txt';

$fp1 = fopen($file1, 'r');
$contents1 = fread($fp1, filesize($file1));
fclose($fp1);

$fp2 = fopen($file2, 'r');
$contents2 = fread($fp2, filesize($file2));
fclose($fp2);

$result = strncmp($contents1, $contents2, strlen($contents1));

if ($result == 0) {
    echo 'File contents are identical';
} else {
    echo 'File contents are not identical';
}

위 코드에서는 두 텍스트 파일의 내용을 비교합니다. 내용이 정확히 동일하면 함수는 0을 반환하고 그렇지 않으면 다른 결과를 반환합니다.

3. strncmp ()를 사용하여 배열을 비교하십시오

strncmp () 함수는 주로 문자열 비교에 사용되지만 배열을 문자열로 변환하여 비교할 수 있습니다. JSON_ENCODE ()를 사용하여 배열을 JSON 문자열로 변환 한 다음 비교를 위해 strncmp ()를 사용할 수 있습니다.

 
$array1 = array('apple', 'banana');
$array2 = array('apple', 'banana');

$result = strncmp(json_encode($array1), json_encode($array2), strlen(json_encode($array1)));

if ($result == 0) {
    echo 'Arrays are identical';
} else {
    echo 'Arrays are not identical';
}

위의 코드에서는 두 배열을 JSON 형식의 문자열로 변환하고 strncmp () 함수를 사용하여 비교합니다. 함수는 배열의 내용이 정확히 동일한 경우에만 0을 반환합니다.

요약

PHP의 strncmp () 함수는 개발자가 문자열, 파일 내용 및 배열을 비교할 수있는 매우 유용한 도구입니다. strncmp ()를 효과적으로 사용하면 암호 확인 및 파일 비교와 같은 응용 프로그램 시나리오에서 특히 코드를 단순화하고 효율성을 향상시킬 수 있습니다.