현재 위치: > 최신 기사 목록> php strnatcasecmp를 사용하여 두 줄을 비교할 때 케이스를 무시하는 방법은 무엇입니까?

php strnatcasecmp를 사용하여 두 줄을 비교할 때 케이스를 무시하는 방법은 무엇입니까?

gitbox 2025-05-27

PHP에서 문자열 비교는 매우 일반적인 작업입니다. 일반적으로 우리는 두 문자열의 크기와 동등성을 비교하기 위해 strcmp () 또는 strcasecmp () 함수를 사용하지만, 두 함수는 문자의 ASCII 값에 따라 문자 별로 문자를 비교하는 반면 strnatcasecmp () 함수는 "자연적인 정렬"방식으로 사례를 무시합니다.

이 기사는 PHP의 strnatcasecmp () 함수를 사용하여 두 줄의 사례 비교를 무시하고 다른 비교 함수와 어떻게 다른지 설명하는 방법을 자세히 설명합니다.

strnatcasecmp 함수는 무엇입니까?

strnatcasecmp () 는 php의 내장 함수입니다. 전체 이름 "String Natural Case-Insensitive 비교"입니다. "자연 순서"에 따라 두 줄을 비교하고 상류 및 소문자를 무시합니다.

소위 "자연 분류"는 숫자 부품이 단순히 문자 별 비교보다는 숫자로 비교 될 것임을 의미합니다. 예를 들어, 문자열 "file10.txt""file2.txt" 보다 큰 것으로 간주됩니다. 숫자 10은 2보다 크기 때문에 문자 "1"이 2보다 크기 때문입니다.

strnatcasecmp 함수의 구문

 int strnatcasecmp ( string $str1 , string $str2 )
  • $ str1$ str2 : 비교할 두 줄.

  • 반품 값 :

    • $ str1이 $ str2 미만인 경우 음수가 반환됩니다.

    • 두 줄이 같으면 0을 반환하십시오.

    • $ str1$ str2 보다 큰 경우 양수가 반환됩니다.

예 : strnatcasecmp를 사용하여 사례 비교 문자열을 무시합니다

 <?php
$str1 = "File10.txt";
$str2 = "file2.txt";

$result = strnatcasecmp($str1, $str2);

if ($result < 0) {
    echo "'$str1' 보다 적습니다 '$str2'";
} elseif ($result > 0) {
    echo "'$str1' 더 큽니다 '$str2'";
} else {
    echo "'$str1' 그리고 '$str2' 동일한";
}
?>

산출:

 'File10.txt' 더 큽니다 'file2.txt'

여기서는 첫 번째 문자열의 숫자 부분이 "10"이고 두 번째는 "2"이지만 strnatcasecmp ()는 숫자의 크기를 올바르게 인식하고 케이스를 무시합니다.

다른 문자열 비교 함수와의 차이

기능 이름 사례에 민감한 지 여부 자연스럽게 정렬할지 여부 설명
strcmp () 아니요 사례 민감성, 문자 비교
strcasecmp () 아니요 아니요 사례에 민감한 문자 별 비교
strnatcmp () 사례에 민감하고 자연스러운 분류
strnatcasecmp () 아니요 케이스, 자연 분류에 둔감합니다

결합 된 URL 예제

파일 이름을 기반으로 두 URL의 경로 부분을 비교하고 케이스 및 숫자 크기 관계를 무시한다고 가정하면 strnatcasecmp ()를 사용하여 달성 할 수 있습니다.

 <?php
$url1 = "https://gitbox.net/files/File10.txt";
$url2 = "https://gitbox.net/files/file2.txt";

// 분석 URL,경로 부분을 취하십시오
$path1 = parse_url($url1, PHP_URL_PATH);
$path2 = parse_url($url2, PHP_URL_PATH);

// 사용 strnatcasecmp 경로를 비교하십시오
if (strnatcasecmp($path1, $path2) < 0) {
    echo "$path1 보다 적습니다 $path2";
} elseif (strnatcasecmp($path1, $path2) > 0) {
    echo "$path1 더 큽니다 $path2";
} else {
    echo "$path1 그리고 $path2 동일한";
}
?>

산출:

 /files/File10.txt 더 큽니다 /files/file2.txt

파일 이름, 버전 번호 등과 같은 문자열을 다룰 때 매우 실용적입니다.