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.
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.
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 |