> 백엔드 개발 > PHP 문제 > PHP에서 문자열의 대소 문자를 구분하지 않는 비교를 수행하는 방법

PHP에서 문자열의 대소 문자를 구분하지 않는 비교를 수행하는 방법

青灯夜游
풀어 주다: 2023-03-11 17:34:02
원래의
2034명이 탐색했습니다.

방법: 1. "strcasecmp(string1,string2)" 문을 사용합니다. 2. "strncasecmp(string1,string2,length)" 문을 사용합니다. 3. "strnatcasecmp(string1,string2)" 문을 사용합니다.

PHP에서 문자열의 대소 문자를 구분하지 않는 비교를 수행하는 방법

이 튜토리얼의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터

방법 1: strcasecmp() 함수 사용

strcasecmp() 함수는 문자열을 비교할 때 대/소문자를 구분하지 않습니다. , 구문 형식은 다음과 같습니다.

strcasecmp(string $str1, string $str2)
로그인 후 복사

여기서 $str1과 $str2는 비교할 두 문자열입니다.

비교 결과에 따르면 $str1이 $str2보다 작으면 반환 값은 < 0이고, $str1이 $str2보다 크면 반환 값은 > 0; $ str1이 $str2와 같으면 이 반환됩니다. < 0;如果 $str1 大于 $str2,则返回值 > 0;如果 $str1 于 $str2 相等,则返回

网站的网址都是不区分大小写的,因此我们可以使用 strcasecmp() 函数来比较两个网址是否相同,示例代码如下:

<?php
header("Content-type:text/html;charset=utf-8");
$url1 = &#39;https://www.php.cn/&#39;;
$url2 = &#39;HTTPS://www.php.cn/&#39;;
if(strcasecmp($url1, $url2) == 0){
    echo &#39;两个网址相同&#39;;
} else {
    echo &#39;两个网址不同&#39;;
}
?>
로그인 후 복사

输出:

两个网址相同
로그인 후 복사

方法2:使用strncasecmp()函数

strncasecmp() 函数比较两个字符串(不区分大小写)。

语法

strncasecmp(string1,string2,length)
로그인 후 복사
参数描述
string1必需。规定要比较的第一个字符串。
string2必需。规定要比较的第二个字符串。
length必需。规定每个字符串用于比较的字符数。

返回值: 该函数返回:

  • - 如果两个字符串相等

  • <0 - 如果 string1 小于 string2

  • >0 - 如果 string1 大于 string2

示例:

<?php
echo strncasecmp("Hello","Hello",6);
echo "<br>";
echo strncasecmp("Hello","hELLo",6);
?>
로그인 후 복사

输出:

로그인 후 복사

方法3:使用strnatcasecmp()函数

strnatcasecmp() 函数使用一种"自然"算法来比较两个字符串(不区分大小写)。

在自然算法中,数字 2 小于数字 10。在计算机排序中,10 小于 2,这是因为 10 中的第一个数字小于 2。

语法

strnatcasecmp(string1,string2)
로그인 후 복사
参数描述
string1必需。规定要比较的第一个字符串。
string2必需。规定要比较的第二个字符串。

返回值:

  • - 如果两个字符串相等

  • <0 - 如果 string1 小于 string2

  • >0

    웹사이트 URL은 대소문자를 구분하지 않으므로 strcasecmp() 함수를 사용하여 두 URL이 동일한지 비교할 수 있습니다. 샘플 코드는 다음과 같습니다.
  • <?php
    echo strnatcasecmp("2Hello world!","10Hello WORLD!");
    echo "<br>";
    echo strnatcasecmp("10Hello world!","2Hello WORLD!");
    ?>
    로그인 후 복사
출력:

-1
1
로그인 후 복사

방법 2: strncasecmp 사용 () 함수

strncasecmp() 함수는 두 문자열을 비교합니다(대소문자를 구분하지 않음). Syntax

<?php
$arr1 = $arr2 = array("pic1","pic2","pic10","pic01","pic100","pic20","pic30","pic200");
echo "Standard string comparison"."<br>";
usort($arr1,"strcmp");

print_r($arr1);
echo "<br>";
echo "<br>";

echo "Natural order string comparison"."<br>";
usort($arr2,"strnatcmp");

print_r($arr2);
?>
로그인 후 복사
매개변수설명< /th>
문자열1필수입니다. 비교할 첫 번째 문자열을 지정합니다.
string2필수입니다. 비교할 두 번째 문자열을 지정합니다.
길이필수입니다. 비교에 사용되는 문자열당 문자 수를 지정합니다.

반환 값: 이 함수는 다음을 반환합니다:

  • - 두 문자열이 같은 경우

  • 🎜<0 - 문자열1이 문자열2보다 작은 경우 🎜🎜
  • 🎜>0 - 경우 string1 string2보다 큼 🎜🎜🎜🎜 예: 🎜🎜
    Standard string comparison
    Array ( [0] => pic01 [1] => pic1 [2] => pic10 [3] => pic100 [4] => pic2 [5] => pic20 [6] => pic200 [7] => pic30 )
    
    Natural order string comparison
    Array ( [0] => pic01 [1] => pic1 [2] => pic2 [3] => pic10 [4] => pic20 [5] => pic30 [6] => pic100 [7] => pic200 )
    로그인 후 복사
    🎜출력: 🎜rrreee🎜🎜방법 3: strnatcasecmp() 함수 사용 🎜🎜🎜strnatcasecmp() 함수는 "자연" 알고리즘을 사용하여 두 문자열을 비교합니다(크기를 구분하지 않음 쓰기). ). 🎜🎜자연산수에서는 숫자 2가 숫자 10보다 작습니다. 컴퓨터 정렬에서는 10의 첫 번째 숫자가 2보다 작기 때문에 10은 2보다 작습니다. 🎜🎜Syntax🎜rrreee
    매개변수 설명
    문자열1 필수입니다. 비교할 첫 번째 문자열을 지정합니다.
    string2 필수입니다. 비교할 두 번째 문자열을 지정합니다.
    🎜반환 값: 🎜
    • 🎜 - if 두 문자열이 동일합니다🎜🎜
    • 🎜<0 - string1이 string2보다 작은 경우🎜🎜
    • 🎜>0 - string1이 string2보다 큰 경우 🎜🎜🎜 🎜예: 🎜rrreee🎜출력: 🎜🎜rrreee🎜🎜설명: 🎜자연 알고리즘(strnatcmp)과 기존 컴퓨터 문자열 정렬 알고리즘(strcmp)🎜rrreee🎜출력: 🎜rrreee🎜권장 학습: " 🎜PHP 동영상 튜토리얼🎜 》🎜

    위 내용은 PHP에서 문자열의 대소 문자를 구분하지 않는 비교를 수행하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿