PHP에서 문자열 비교 및 매칭은 매우 일반적인 작업입니다. 이러한 유형의 문제를 다룰 때는 종종 퍼지 매칭 사례를 무시해야합니다. PHP는이 요구 사항을 충족시키기 위해 많은 문자열 조작 함수를 제공하며, 그 중 strnatcasecmp 함수는 매우 실용적인 도구입니다.
strnatcasecmp 는 PHP의 내장 기능으로 두 줄을 비교하고 케이스를 무시합니다. 비교할 때이 기능은 자연스럽게 숫자 분류, 즉 문자열에 숫자가 포함 된 경우 문자의 ASCII 코드뿐만 아니라 숫자의 값에 따라 비교됩니다. 이로 인해 StrnatcaseCMP는 특히 버전 번호 또는 숫자가있는 다른 텍스트와 같은 숫자를 포함하는 문자열을 처리하는 데 특히 적합합니다.
int strnatcasecmp ( string $str1 , string $str2 )
$ str1 : 비교할 첫 번째 문자열.
$ str2 : 비교할 두 번째 문자열.
반품 값 :
두 줄이 같으면 0을 반환하십시오.
첫 번째 문자열이 두 번째 문자열보다 작은 경우 음수가 반환됩니다.
첫 번째 문자열이 두 번째 문자열보다 크면 양수가 반환됩니다.
케이스를 무시하는 퍼지 문자열 일치를 달성하기 위해서는 함수 자체가 자동으로 케이스를 무시하기 때문에 strnatcasecmp 함수 만 비교하기 위해만 사용하면됩니다. 다음은 실제 응용 프로그램의 예입니다.
<?php
// 두 줄을 정의하십시오
$string1 = "Version 1.10";
$string2 = "version 1.2";
// 사용 strnatcasecmp 기능은 어퍼 케이스를 무시하는 퍼지 비교를 수행합니다.
if (strnatcasecmp($string1, $string2) == 0) {
echo "두 줄은 동일합니다。";
} else {
echo "두 줄은 같지 않습니다。";
}
?>
출력 결과 :
두 줄은 같지 않습니다。
strnatcasecmp 는 단순한 무시 사건 일뿐 만 아니라 자연 순서로도 비교됩니다. 이는 문자열에 숫자가 포함되면 PHP는 문자의 ASCII 순서가 아닌 숫자의 실제 값별로 정렬됩니다. 예를 들어:
<?php
// 버전 번호를 비교하십시오
$version1 = "Version 2.10";
$version2 = "Version 2.2";
// 사용 strnatcasecmp 비교하십시오
if (strnatcasecmp($version1, $version2) == 0) {
echo "동일한 버전。";
} else {
echo "버전은 같지 않습니다。";
}
?>
출력 결과 :
버전은 같지 않습니다。
이 예에서, 2.10은 2.2 보다 큰 것으로 간주되며, 이는 직관적 인 숫자 분류 방식과 일치합니다.
실제 개발에서는 특히 다른 소스의 문자열을 비교할 때 문자열을 URL 주소와 결합해야 할 수도 있습니다. 여기서 우리는 strnatcasecmp를 사용하여 두 개의 URL을 일치시켜 사례를 무시할 수 있습니다. 예는 다음과 같습니다.
<?php
// 둘 URL 끈
$url1 = "https://gitbox.net/user/abc";
$url2 = "https://gitbox.net/user/ABC";
// 사용 strnatcasecmp 비교하다 URL
if (strnatcasecmp($url1, $url2) == 0) {
echo "这둘 URL 동일한。";
} else {
echo "这둘 URL 不동일한。";
}
?>
출력 결과 :
这둘 URL 동일한。
PHP 개발자는 strnatcasecmp 함수를 사용함으로써 어퍼 케이스를 무시하는 퍼지 문자열 비교를 쉽게 구현하고 비교할 때 자연스러운 숫자를 자동으로 고려할 수 있습니다. 간단한 문자열이든 버전 번호 나 숫자와 관련된 문자열이든 StrnatcaseCMP는 매우 실용적인 기능입니다. URL 비교와 같은 실제 개발의 응용 프로그램 시나리오와 결합하여 더 똑똑한 문자열 일치 작업을 쉽게 달성 할 수 있습니다.