概述
本教程操作环境:windows7系统、PHP8.1版、DELL G3电脑
php内置了多种字符串比较函数
函数 | 描述 |
---|---|
strcasecmp() | 比较两个字符串(大小写不敏感)。 |
strcmp() | 比较两个字符串(大小写敏感)。 |
strcoll() | 比较两个字符串(根据本地设置)。 |
strnatcasecmp() | 使用一种"自然排序"算法来比较两个字符串(大小写不敏感)。 |
strnatcmp() | 使用一种"自然排序"算法来比较两个字符串(大小写敏感)。 |
strncasecmp() | 前 n 个字符的字符串比较(大小写不敏感)。 |
strncmp() | 前 n 个字符的字符串比较(大小写敏感)。 |
substr_compare() | 从指定的开始位置(二进制安全和选择性区分大小写)比较两个字符串。 |
常用字符串比较函数
1、strcmp()函数--以区分大小写的方式比较两个字符串
strcmp(string1,string2)
比较两个字符串时,如果:
如果两个字符串相等,则会返回
0
;如果string1 小于 string2,则会返回
< 0
的值;如果string1 大于 string2,则会返回
> 0
的值;
我们先来看下面一个例子:
<?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>";
?>
登录后复制
输出:
strcmp()函数在比较字符串时,是区分大小写的。
<?php
$str1="靠谱客";
$str2="靠谱客";
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的大小写不同,因此两个字符串不相等。
但有时,我们只需要比较字符串的值,不想区分大小写,例如比较网站的网址,那要怎么处理?简单,可以使用strcasecmp()函数。
2、strcasecmp()函数--以不区分大小写的方式比较两个字符串
strcasecmp()函数和strcmp()函数类似,都可比较字符串,返回值也相同,区别只是strcasecmp()函数不区分大小写。
下面我们来看看下面一个例子:
<?php
header("Content-type:text/html;charset=utf-8");
$url1="https://www.uoften.com/";
$url2="HTTPS://WWW.PHP.CN/";
if(strcasecmp($url1, $url2) == 0){
echo '两个网址相同';
} else {
echo '两个网址不同';
}
?>
登录后复制
输出结果:
两个网址相同
登录后复制
3、strncasecmp()函数--大小写不敏感
strncasecmp() 函数比较两个字符串(不区分大小写)。语法如下
strncasecmp(string1,string2,length)
登录后复制
参数 | 描述 |
---|---|
string1 | 必需。规定要比较的第一个字符串。 |
string2 | 必需。规定要比较的第二个字符串。 |
length | 必需。规定每个字符串用于比较的字符数。 |
返回值:
0 - 如果两个字符串相等
<0 - 如果 string1 小于 string2
>0 - 如果 string1 大于 string2
示例:
<?php
echo strncasecmp("Hello world!","hello earth!",6);
?>
登录后复制
输出:
0
登录后复制
4、strnatcasecmp()函数--大小写不敏感
strnatcasecmp() 函数使用一种"自然"算法来比较两个字符串(不区分大小写)。
在自然算法中,数字 2 小于数字 10。在计算机排序中,10 小于 2,这是因为 10 中的第一个数字小于 2。
语法:
strnatcasecmp(string1,string2)
登录后复制
返回值:
0 - 如果两个字符串相等
<0 - 如果 string1 小于 string2
>0 - 如果 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 '密码匹配!';
}
?>
登录后复制
推荐学习:《PHP视频教程》
以上就是php比较字符串的函数是什么的详细内容,更多请关注靠谱客其它相关文章!
最后
以上就是烂漫小蘑菇为你收集整理的php比较字符串的函数是什么的全部内容,希望文章能够帮你解决php比较字符串的函数是什么所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复