• PHP字符串比较函数详解


    在PHP中,对于字符串之间的比较有很多种方法,第一种是使用 strcmp()函数和 strcasecmp()函数按照字节进行比较,第二种是使用 strnatcmp()函数按照自然排序法进行比较,第三种是使用 strncmp()函数指定从源字符串的位置开始比较。 下面对这几种方法进行一下深入的说明。无锡大理石测量平台

    1. 按照字节进行字符串的比较

    按照字节进行字符串的比较方法有两种,分别是利用 strcmp()函数和 strcasecmp()函数。 这两种函数的区别是 strcmp()函数区分字符的大小写,而strcasecmp()函数不区分字符的大小写。由于这两个函数的实现方法基本相同,这里只是拿出其中的 strcmp()函数来进行一下介绍。

    strcmp()函数用来对两个字符串按字节进行比较。

    语法格式如下:

    1

    strcmp(string1, string2)

    参数string1 和 参数string2 指定要比较的两个字符串。如果相等则函数返回值为0;如果参数 string1 大于参数 string2,则函数返回值大于0;如果参数 string1 小于参数 string2,则函数返回值小于0。

    注意 该函数区分字母大小写。

    使用 srtcmp()函数和 strcasecmp()函数分别对两个字符串按字节进行比较,代码实例如下:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    <?php

     $str1 = "PHP学习手册!";               // 定义字符串常量

     $str2 = "PHP学习手册!";               // 定义字符串常量

     $str3 = "phpcn";                      // 定义字符串常量

     $str4 = "PHPCN";                      // 定义字符串常量

     echo strcmp($str1,$str2);             // 这两个字符串相等

     echo strcmp($str3,$str4);             // 注意该函数区分大小写

     echo strcasecmp($str3,$str4);          //该函数不区分大小写

    ?>

    输出结果为:

    1

    0 1 0

    说明: 在PHP中,对字符串之间进行比较的应用是非常广泛的。比如,使用strcmp()函数比较在用户登录体统中输入的用户名和密码是否正确,如果在验证用户和密码时不用此函数,那么输入用户名和密码无论是大写还是小写,只要正确即可登录。使用了 srtcmp()函数之后就避免了这种情况,及时正确,也必须大小写全部匹配才可以登录,从而提高了网站的安全性。

    2. 按自然排序法进行字符串的比较

    在PHP中,按照自然排序法进行字符串的比较是通过使用 strnatcmp()函数来实现的。自认排序法比较的是字符串的数字部分,将字符串中的数字按照大小进行比较。它的语法是如下的格式:

    1

    strnatcmp(string1, string2)

    如果参数string1 和 参数string2相等则函数返回值为0;如果参数 string1 大于参数 string2,则函数返回值大于0;如果参数 string1 小于参数 string2,则函数返回值小于0。

    提示: 该函数区分字母大小写。

    注意:在自然运算法则中,2比10小,然而在计算机的序列中,10比2小,因为"10" 中的第一个数字是“1”,它是小于“2”的。

    使用 strnatcmp()函数按照自然排序法进行字符串的比较的实例代码如下所示:

    1

    2

    3

    4

    5

    6

    7

    8

    <?php

     $str1 = "inter2.jpg";                  // 定义字符串常量

     $str2 = "inter10.jpg";                 // 定义字符串常量

     $str3 = "phpcn1";                      // 定义字符串常量

     $str4 = "PHPCN2";                      // 定义字符串常量

     echo strnatcmp($str1,$str2);           // 按自然排序法进行比较,返回-1

     echo strnatcmp($str3,$str4);           // 按自然排序法进行比较,返回1

    ?>

    输出的结果为:

    1

    -1  1

    说明: 按照自认排序法进行比较,还可以使用另一个与 strnatcmp()函数作用相同,但不区分大小的strnatcasecmp()函数。

    3. 指定从源字符串位置开始比较的函数

    strncmp()函数用来比较字符串中的前n个字符。

    它的语法是如下的格式:

    1

    strncmp(string1, string2, length)

    如果参数string1 和 参数string2相等则函数返回值为0;如果参数 string1 大于参数 string2,则函数返回值大于0;如果参数 string1 小于参数 string2,则函数返回值小于0。该函数区分字母大小写。

    它的参数说明如下:

    参 数 说 明
    string1 指定参与比较的第一个字符串对象
    string2 指定参与比较的第二个字符串对象
    length 必要参数,指定每个字符串中参与比较字符串的数量

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

    1

    2

    3

    4

    5

    <?php

     $str1 = "I like this";                  // 定义字符串常量

     $str2 = "i study php";                  // 定义字符串常量

     echo strncmp($str1,$str2,2);            // 比较前两个字符

    ?>

    输出结果为:

    1

     

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

  • 相关阅读:
    12.1
    11.26
    12.5Java日报
    11.25
    11.27
    12.03
    11.28
    12.04
    如何在TortoiseGit中使用sshkeygen生成的key
    leetcode 39 组合总和
  • 原文地址:https://www.cnblogs.com/furuihua/p/12077139.html
Copyright © 2020-2023  润新知