Home  >  Article  >  Backend Development  >  Is there a string comparison method in php?

Is there a string comparison method in php?

青灯夜游
青灯夜游Original
2022-03-07 19:20:162741browse

There are string comparison methods in php. PHP has a variety of built-in string comparison methods: strcasecmp(), strcmp(), strcoll(), strnatcasecmp(), strnatcmp(), strncasecmp(), strncmp(), etc.

Is there a string comparison method in php?

The operating environment of this tutorial: windows7 system, PHP7.1 version, DELL G3 computer

There is a string comparison method in php .

php has a variety of built-in string comparison methods:

Function Description
strcasecmp() Compares two strings (case insensitive).
strcmp() Compares two strings (case sensitive).
strcoll() Compares two strings (according to local settings).
strnatcasecmp() Uses a "natural ordering" algorithm to compare two strings (case insensitive).
strnatcmp() Uses a "natural ordering" algorithm to compare two strings (case sensitive).
strncasecmp() String comparison of the first n characters (case insensitive).
strncmp() String comparison of the first n characters (case sensitive).
substr_compare() Compares two strings starting at the specified starting position (binary safe and selective case sensitive).

#1. Compare strings based on bytes

The methods for comparing strings based on bytes are: Two types are using the strcmp() function and strcasecmp() function. The difference between these two functions is that the strcmp() function distinguishes the case of characters, while the strcasecmp() function does not distinguish the case of characters. Since the implementation methods of these two functions are basically the same, here we only introduce the strcmp() function.

The strcmp() function is used to compare two strings by bytes.

The syntax format is as follows:

strcmp(string1, string2)

Note that this function is case-sensitive. Parameters string1 and parameter string2 specify the two strings to be compared. If they are equal, the function return value is 0; if the parameter string1 is greater than the parameter string2, the function return value is greater than 0; if the parameter string1 is less than the parameter string2, the function return value is less than 0.

Use the srtcmp() function and strcasecmp() function to compare two strings by bytes respectively. The code example is as follows:

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

The output result is:

0 1 0

Note: In PHP, the application of comparing strings is very extensive. For example, use the strcmp() function to compare whether the user name and password entered in the user login system are correct. If this function is not used when verifying the user and password, then the user name and password entered can be logged in as long as they are correct, whether in uppercase or lowercase. This situation is avoided after using the srtcmp() function. It is timely and correct, and all uppercase and lowercase letters must match before you can log in, thus improving the security of the website.

2. Compare strings according to natural sorting method

In PHP, compare strings according to natural sorting method by using strnatcmp() function realized. The self-recognition sorting method compares the numeric part of the string, and compares the numbers in the string according to their size. Its syntax is in the following format:

strnatcmp(string1, string2)

Tips: This function is case-sensitive. If parameter string1 and parameter string2 are equal, the function return value is 0; if parameter string1 is greater than parameter string2, the function return value is greater than 0; if parameter string1 is less than parameter string2, the function return value is less than 0.

Note: In natural arithmetic, 2 is smaller than 10. However, in the computer sequence, 10 is smaller than 2 because the first number in "10" is "1", which is less than "2".

The example code of using the strnatcmp() function to compare strings according to the natural sorting method is as follows:

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

The output result is:

-1  1

Instructions: According to the For comparison, you can also use another strnatcasecmp() function that has the same effect as the strnatcmp() function but does not distinguish between sizes.

3. Specify the function to start comparison from the source string position

strncmp() function is used to compare the first n characters in the string.

Its syntax is in the following format:

strncmp(string1, string2, length)

Its parameter description is as follows: If parameter string1 and parameter string2 are equal, the function return value is 0; if parameter string1 is greater than parameter string2, then the function The return value is greater than 0; if parameter string1 is less than parameter string2, the function return value is less than 0. This function is case-sensitive.

string1string2length

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

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

输出结果为:

-1

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

推荐学习:《PHP视频教程

Parameter Description
Specify the first string object to participate in the comparison
Specify the second string object to participate in the comparison
Required parameters, specify the number of comparison strings in each string

The above is the detailed content of Is there a string comparison method in php?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn