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

青灯夜游
发布: 2022-08-31 19:31:21
原创
2936人浏览过
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()函数--以区分大小写的方式比较两个字符串

立即学习PHP免费学习笔记(深入)”;

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>";
?>
登录后复制

输出:

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="https://www.php.cn/";
$url2="HTTPS://WWW.PHP.CN/";
if(strcasecmp($url1, $url2) == 0){
        echo '两个网址相同';
    } else {
        echo '两个网址不同';
    }
?>
登录后复制

输出结果:

两个网址相同
登录后复制

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

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

十天学会PHP教程
十天学会PHP教程

以前写了十天学会ASP,十天学会ASP.NET什么的,现在想想再写个PHP吧,也算比较全了。 PHP的调试方法我这里就不说了,外面很多文章都有介绍,也有很多不同的组合。我这里暂时是以 Apache web server 和 MY SQL 作为WEB服务器和数据库,在php-4.3.3下的环境做的程序。当然要简单的构建和访问查看数据库 PHPMYADMIN 不可少。

十天学会PHP教程 482
查看详情 十天学会PHP教程
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 '密码匹配!';
}
?>
登录后复制

5.png

推荐学习:《PHP视频教程

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

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号