• 技术文章 >后端开发 >PHP问题

    php比较字符串的函数是什么

    青灯夜游青灯夜游2022-08-31 19:31:21原创452

    php比较字符串的函数:1、strcasecmp(),大小写不敏感的比较两个字符串;2、strcmp(),大小写敏感的比较两个字符串;3、strcoll(),根据本地设置来比较两个字符串;4、strnatcasecmp(),大小写不敏感的使用一种“自然排序”算法来比较两个字符串;5、strnatcmp(),大小写敏感的使用一种“自然排序”算法来比较两个字符串。

    php入门到就业线上直播课:进入学习

    本教程操作环境:windows7系统、PHP8.1版、DELL G3电脑

    php内置了多种字符串比较函数

    函数描述
    strcasecmp()比较两个字符串(大小写不敏感)。
    strcmp()比较两个字符串(大小写敏感)。
    strcoll()比较两个字符串(根据本地设置)。
    strnatcasecmp()使用一种"自然排序"算法来比较两个字符串(大小写不敏感)。
    strnatcmp()使用一种"自然排序"算法来比较两个字符串(大小写敏感)。
    strncasecmp()前 n 个字符的字符串比较(大小写不敏感)。
    strncmp()前 n 个字符的字符串比较(大小写敏感)。
    substr_compare()从指定的开始位置(二进制安全和选择性区分大小写)比较两个字符串。

    常用字符串比较函数

    1、strcmp()函数--以区分大小写的方式比较两个字符串

    strcmp(string1,string2)比较两个字符串时,如果:

    我们先来看下面一个例子:

    <?php
    $str1="12";
    $str2="12";
    echo strcmp($str1,$str2)."<br>";
    
    $str1="12";
    $str2="13";
    echo strcmp($str1,$str2)."<br>";
    
    $str1="15";
    $str2="13";
    echo strcmp($str1,$str2)."<br>";
    ?>

    输出:

    1.png

    strcmp()函数在比较字符串时,是区分大小写的。

    <?php
    $str1="PHP中文网";
    $str2="php中文网";
    echo strcmp($str1,$str2)."<br>";
    ?>

    输出结果:

    -1

    借助这个特性,我们可以将其运用在网站注册账号时的确认用户密码功能中(密码通常是区分大小写的),比较两次输入的密码是否一致。

    <?php
    header("Content-type:text/html;charset=utf-8");
    $pwd1 = 'php124@qq';
    $pwd2 = 'php124@QQ';
    if(strcmp($pwd1, $pwd2) != 0){
        echo '密码不匹配!';
    } else {
        echo '密码匹配!';
    }
    ?>

    只有两个字符串完全匹配,strcmp()函数才会认为相等的;而在上面示例中,$pwd1 和 $pwd2的大小写不同,因此两个字符串不相等。

    2.png

    但有时,我们只需要比较字符串的值,不想区分大小写,例如比较网站的网址,那要怎么处理?简单,可以使用strcasecmp()函数。

    2、strcasecmp()函数--以不区分大小写的方式比较两个字符串

    strcasecmp()函数和strcmp()函数类似,都可比较字符串,返回值也相同,区别只是strcasecmp()函数不区分大小写。

    下面我们来看看下面一个例子:

    <?php
    header("Content-type:text/html;charset=utf-8");
    $url1="//m.sbmmt.com/";
    $url2="HTTPS://WWW.PHP.CN/";
    if(strcasecmp($url1, $url2) == 0){
            echo '两个网址相同';
        } else {
            echo '两个网址不同';
        }
    ?>

    输出结果:

    两个网址相同

    3、strncasecmp()函数--大小写不敏感

    strncasecmp() 函数比较两个字符串(不区分大小写)。语法如下

    strncasecmp(string1,string2,length)
    参数描述
    string1必需。规定要比较的第一个字符串。
    string2必需。规定要比较的第二个字符串。
    length必需。规定每个字符串用于比较的字符数。

    返回值:

    示例:

    <?php
    echo strncasecmp("Hello world!","hello earth!",6);
    ?>

    输出:

    0

    4、strnatcasecmp()函数--大小写不敏感

    strnatcasecmp() 函数使用一种"自然"算法来比较两个字符串(不区分大小写)。

    在自然算法中,数字 2 小于数字 10。在计算机排序中,10 小于 2,这是因为 10 中的第一个数字小于 2。

    语法:

    strnatcasecmp(string1,string2)

    返回值:

    示例:

    <?php
    echo strnatcasecmp("2Hello world!","10Hello WORLD!");
    echo "<br>";
    echo strnatcasecmp("10Hello world!","2Hello WORLD!");
    ?>

    输出:

    -1
    1

    5、strncmp()函数--大小写敏感

    strncmp() 函数比较两个字符串(区分大小写)。

    该函数与 strcmp() 函数类似,不同的是,strcmp() 没有 length 参数(不能指定每个字符串用于比较的字符数)。

    strncmp(string1,string2,length)
    参数描述
    string1必需。规定要比较的第一个字符串。
    string2必需。规定要比较的第二个字符串。
    length必需。规定每个字符串用于比较的字符数。

    返回值和strcmp() 函数一样

    <?php
    header("Content-type:text/html;charset=utf-8");
    $pwd1 = 'password';
    $pwd2 = 'Password';
    if(strncmp($pwd1, $pwd2,8) != 0){
        echo '密码不匹配!';
    } else {
        echo '密码匹配!';
    }
    ?>

    5.png

    推荐学习:《PHP视频教程

    以上就是php比较字符串的函数是什么的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    专题推荐:php php字符串
    上一篇:详解PHP八大设计模式 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• php字符串怎么移除前4个字符• php字符串怎么去掉“-”字符• php字符串怎么求指定字符出现次数• php字符串有哪几种定义方式• php字符串不足怎么补0
    1/1

    PHP中文网