>백엔드 개발 >PHP 문제 >PHP에 문자열 비교 방법이 있습니까?

PHP에 문자열 비교 방법이 있습니까?

青灯夜游
青灯夜游원래의
2022-03-07 19:20:162767검색

PHP에는 문자열 비교 방법이 있습니다. PHP에는 strcasecmp(), strcmp(), strcoll(), strnatcasecmp(), strnatcmp(), strncasecmp(), strncmp() 등 다양한 문자열 비교 방법이 내장되어 있습니다.

PHP에 문자열 비교 방법이 있습니까?

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

php에는 문자열 비교 방법이 있습니다.

php에는 다양한 문자열 비교 방법이 내장되어 있습니다:

Function Description
strcasecmp() 두 문자열을 비교합니다(대소문자 구분 안 함).
strcmp() 두 문자열을 비교합니다(대소문자 구분).
strcoll() 두 문자열을 비교합니다(로컬 설정에 따라).
strnatcasecmp() "자연 순서" 알고리즘을 사용하여 두 문자열을 비교합니다(대소문자 구분 안 함).
strnatcmp() "자연 순서" 알고리즘을 사용하여 두 문자열을 비교합니다(대소문자 구분).
strncasecmp() 처음 n자의 문자열 비교(대소문자 구분 안 함)
strncmp() 처음 n자의 문자열 비교(대소문자 구분).
substr_compare() 지정된 시작 위치에서 시작하는 두 문자열을 비교합니다(이진 안전 및 선택적으로 대소문자 구분).

1. 바이트 기준으로 문자열 비교

바이트 기준으로 문자열을 비교하는 방법에는 strcmp() 함수와 strcasecmp() 함수를 사용하는 두 가지 방법이 있습니다. 이 두 함수의 차이점은 strcmp() 함수는 문자의 대소문자를 구분하는 반면, strcasecmp() 함수는 문자의 대소문자를 구분하지 않는다는 점입니다. 이 두 함수의 구현 방법은 기본적으로 동일하므로 여기서는 strcmp() 함수만 소개합니다.

strcmp() 함수는 두 문자열을 바이트 단위로 비교하는 데 사용됩니다.

구문 형식은 다음과 같습니다.

strcmp(string1, string2)

이 함수는 대소문자를 구분합니다. 매개변수 string1 및 매개변수 string2는 비교할 두 문자열을 지정합니다. 동일하면 함수 반환 값은 0입니다. 매개 변수 string1이 매개 변수 string2보다 크면 함수 반환 값은 0보다 큽니다. 매개 변수 string1이 매개 변수 string2보다 작으면 함수 반환 값은 다음보다 작습니다. 0.

srtcmp() 함수와 strcasecmp() 함수를 사용하여 두 문자열을 각각 바이트 단위로 비교합니다. 코드 예는 다음과 같습니다.

<?php
 $str1 = "PHP学习手册!";               // 定义字符串常量
 $str2 = "PHP学习手册!";               // 定义字符串常量
 $str3 = "phpcn";                      // 定义字符串常量
 $str4 = "PHPCN";                      // 定义字符串常量
 echo strcmp($str1,$str2);             // 这两个字符串相等
 echo strcmp($str3,$str4);             // 注意该函数区分大小写
 echo strcasecmp($str3,$str4);          //该函数不区分大小写
?>

출력 결과는 다음과 같습니다.

0 1 0

설명: PHP에서 문자열 비교에 대한 응용 프로그램입니다. 비교의 범위가 매우 넓습니다. 예를 들어, 사용자 로그인 시스템에 입력한 사용자 이름과 비밀번호가 올바른지 비교하려면 strcmp() 함수를 사용하십시오. 사용자와 비밀번호를 확인할 때 이 함수를 사용하지 않으면 입력한 사용자 이름과 비밀번호로 로그인될 수 있습니다. 대문자든 소문자든 정확하다면 말이죠. srtcmp() 함수를 사용하면 이러한 상황을 방지할 수 있으며 이는 시의적절하고 정확하며 로그인하기 전에 모든 대문자와 소문자가 일치해야 웹사이트의 보안이 향상됩니다.

2. 자연 정렬 방법에 따른 문자열 비교

PHP에서는 strnatcmp() 함수를 사용하여 문자열 비교를 수행합니다. 자체 인식 정렬 방법은 문자열의 숫자 부분을 비교하고 크기에 따라 문자열의 숫자를 비교합니다. 구문 형식은 다음과 같습니다.

strnatcmp(string1, string2)

팁: 이 함수는 대소문자를 구분합니다. 매개변수 string1과 매개변수 string2가 동일하면 함수 반환 값은 0입니다. 매개변수 string1이 매개변수 string2보다 크면 함수 반환 값은 0보다 큽니다. 매개변수 string1이 매개변수 string2보다 작으면 함수 반환 값은 다음보다 작습니다. 0.

참고: 자연 알고리즘에서 2는 10보다 작습니다. 그러나 컴퓨터 시퀀스에서는 "10"의 첫 번째 숫자가 "1"이므로 "2"보다 작기 때문에 10은 2보다 작습니다.

strnatcmp() 함수를 사용하여 자연 정렬 방법에 따라 문자열을 비교하는 예제 코드는 다음과 같습니다.

<?php
 $str1 = "inter2.jpg";                  // 定义字符串常量
 $str2 = "inter10.jpg";                 // 定义字符串常量
 $str3 = "phpcn1";                      // 定义字符串常量
 $str4 = "PHPCN2";                      // 定义字符串常量
 echo strnatcmp($str1,$str2);           // 按自然排序法进行比较,返回-1
 echo strnatcmp($str3,$str4);           // 按自然排序法进行比较,返回1
?>

출력 결과는 다음과 같습니다.

-1  1

참고: 자체 인식 정렬 방법에 따라 비교하려면 다른 AND를 사용할 수도 있습니다. strnatcmp() 함수는 크기를 구분하지 않는 strnatcasecmp() 함수와 동일한 효과를 갖습니다.

3 소스 문자열 위치에서 비교를 시작하는 함수를 지정합니다.

strncmp() 함수는 문자열의 처음 n개 문자를 비교하는 데 사용됩니다.

구문은 다음 형식입니다.

strncmp(string1, string2, length)

매개변수 설명은 다음과 같습니다. 매개변수 string1과 매개변수 string2가 같으면 함수 반환 값은 0이고, 매개변수 string1이 매개변수 string2보다 크면 함수 반환 값은 0입니다. 0보다 큼, 매개변수 string1이 매개변수 string2보다 작으면 함수 반환 값은 0보다 작습니다. 이 함수는 대소문자를 구분합니다.

매개변수 설명
string1 비교에 참여하는 첫 번째 문자열 개체 지정
string2 두 번째 문자열 개체 지정 비교참여
length 필수 매개변수, 각 문자열의 비교 문자열 수를 지정합니다.

使用strncmp()函数比较字符串的前两个字符是否与源字符串相等,其实例代码如下所示:

<?php
 $str1 = "I like this";                  // 定义字符串常量
 $str2 = "i study php";                  // 定义字符串常量
 echo strncmp($str1,$str2,2);            // 比较前两个字符
?>

输出结果为:

-1

注释:从上面的代码中可以看出,由于变量$str2 中的字符串的首字母为小写,与变量$str1 中的字符串不匹配,所以两个字符串比较过后的函数返回值为 -1。

推荐学习:《PHP视频教程

위 내용은 PHP에 문자열 비교 방법이 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.