首页 > 编程笔记 > PHP笔记 阅读:28

PHP比较两个字符串

在任何语言中,字符串比较都是字符串处理功能中重要的特性之一。有很多方法可以比较两个字符串,PHP 中提供了两个函数来实现字符串比较功能,分别是 strcmp() 和 strcasecmp() 函数,下面就来分别介绍一下。

1、以区分大小写的方式比较两个字符串

strcmp() 函数可以对两个字符串进行二进制安全的比较,并且区分大小写,其语法格式如下:

strcmp(string $str1, string $str2)

其中 $str1 和 $str2 分别是要比较的两个字符串。

根据比较结果 strcmp() 函数会返回不同的值,如果 $str1 小于 $str2,则返回值 < 0;如果 $str1 大于 $str2,则返回值 > 0;如果 $str1 与 $str2 相等,则返回 0。

当我们在某个网站上注册账号时,对于用户密码通常需要输入两次来确认,以此减少由于输入错误而造成的密码设定错误。因为密码通常是区分大小写的,所以可以使用 strcmp() 函数来比较两次输入的密码,示例代码如下所示:
<?php
    $pwd1 = 'password';
    $pwd2 = 'Password';
    if(strcmp($pwd1, $pwd2) != 0){
        echo '密码不匹配!';
    } else {
        echo '密码匹配!';
    }
?>
注意,对于 strcmp() 函数,待比较的两个字符串必须完全匹配才能被认为是相等的。例如 示例代码中的 $pwd1 和 $pwd2 就是不同的。如果要以不区分大小写的方式比较两个字符串,可以使用 strcasecmp() 函数。

2、以不区分大小写的方式比较两个字符串

PHP 中的 strcasecmp() 函数与 strcmp() 函数的功能类似,都可以比较两个字符串,不同的是 strcasecmp() 函数在比较字符串时不会区分大小写,其语法格式如下:

strcasecmp(string $str1, string $str2)

其中,$str1 和 $str2 分别是要比较的两个字符串。

根据比较结果,如果 $str1 小于 $str2,则返回值 < 0;如果 $str1 大于 $str2,则返回值 > 0;如果 $str1 于 $str2 相等,则返回 0。

网站的网址都是不区分大小写的,因此我们可以使用 strcasecmp() 函数来比较两个网址是否相同,示例代码如下:
<?php
    $url1 = 'http://c.biancheng.net/php/';
    $url2 = 'HTTP://c.biancheng.net/PHP/';
    if(strcasecmp($url1, $url2) == 0){
        echo '两个网址相同';
    } else {
        echo '两个网址不同';
    }
?>

编程帮,一个分享编程知识的公众号。跟着站长一起学习,每天都有进步。

通俗易懂,深入浅出,一篇文章只讲一个知识点。

文章不深奥,不需要钻研,在公交、在地铁、在厕所都可以阅读,随时随地涨姿势。

文章不涉及代码,不烧脑细胞,人人都可以学习。

当你决定关注「编程帮」,你已然超越了90%的程序员!

编程帮二维码
微信扫描二维码关注

所有教程

优秀文章