首页 > 编程笔记 > PHP笔记

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 = 'https://www.xinbaoku.com/php/';
    $url2 = 'https://www.xinbaoku.com/PHP/';
    if(strcasecmp($url1, $url2) == 0){
        echo '两个网址相同';
    } else {
        echo '两个网址不同';
    }
?>

所有教程

优秀文章