>  기사  >  백엔드 개발  >  PHP 문자열 비교 함수에 대한 자세한 설명

PHP 문자열 비교 함수에 대한 자세한 설명

伊谢尔伦
伊谢尔伦원래의
2017-04-22 18:32:5213512검색

PHP에서 문자열을 비교하는 방법은 여러 가지가 있습니다. 첫 번째는 strcmp() 함수와 strcasecmp() 함수를 사용하여 바이트 단위로 비교하는 것입니다. 두 번째는 strnatcmp() 함수를 사용하여 성격에 따라 비교하는 것입니다. 세 번째 방법은 strncmp() 함수를 사용하여 소스 문자열의 위치부터 비교를 지정하는 것입니다. 다음은 이러한 방법에 대한 자세한 설명입니다.

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

지침: 지침을 따르십시오. 비교를 위해 strnatcmp() 함수와 동일한 효과를 가지지만 크기를 구분하지 않는 다른 strnatcasecmp() 함수를 사용할 수도 있습니다.

3. 원본 문자열 위치부터 비교를 시작하는 함수를 지정합니다.

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

구문은 다음 형식입니다.

strncmp(string1, string2, length)

매개변수 string1과 매개변수 string2가 같으면 함수 반환 값은 0이고, 매개변수 string1이 매개변수 string2보다 크면 함수 반환 값입니다. 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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