首頁 >後端開發 >PHP問題 >php比較字串的函數是什麼

php比較字串的函數是什麼

青灯夜游
青灯夜游原創
2022-08-31 19:31:212263瀏覽

php比較字串的函數:1、strcasecmp(),大小寫不敏感的比較兩個字串;2、strcmp(),大小寫敏感的比較兩個字串;3、strcoll( ),根據本地設定來比較兩個字串;4、strnatcasecmp(),大小寫不敏感的使用一種「自然排序」演算法來比較兩個字串;5、strnatcmp(),大小寫敏感的使用一種「自然排序」演算法來比較兩個字串。

php比較字串的函數是什麼

本教學操作環境:windows7系統、PHP8.1版、DELL G3電腦

php內建了多種字串比較函數

##比較兩個字串(大小寫不敏感)。 strcmp()比較兩個字串(大小寫敏感)。 strcoll()比較兩個字串(根據本地設定)。 strnatcasecmp()使用一種"自然排序"演算法來比較兩個字串(大小寫不敏感)。 strnatcmp()使用一種"自然排序"演算法來比較兩個字串(大小寫敏感)。 strncasecmp()前 n 個字元的字串比較(大小寫不敏感)。 strncmp()前 n 個字元的字串比較(大小寫敏感)。 substr_compare()從指定的開始位置(二進位安全性和選擇性區分大小寫)比較兩個字串。
函數 描述
strcasecmp()

常用字串比較函數

#1、strcmp()函數--以區分大小寫的方式比較兩個字串

strcmp(string1,string2)比較兩個字串時,如果:

  • 如果兩個字串相等,則會回傳

    0;

  • 如果string1 小於string2,則會回傳

     的值;

  • 如果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>";
?>

輸出:


php比較字串的函數是什麼#strcmp()函數在比較字串時,是區分大小寫的。

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

輸出結果:

-1

使用這個特性,我們可以將其運用在網站註冊帳號時的確認使用者密碼功能中(密碼通常是區分大小寫的),比較兩次輸入的密碼是否一致。

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

只有兩個字串完全匹配,strcmp()函數才會認為相等的;而在上面範例中,$pwd1 和$pwd2的大小寫不同,因此兩個字串不相等。

php比較字串的函數是什麼但有時,我們只需要比較字串的值,不想區分大小寫,例如比較網站的網址,那要怎麼處理?簡單,可以使用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 &#39;两个网址相同&#39;;
    } else {
        echo &#39;两个网址不同&#39;;
    }
?>

輸出結果:

两个网址相同

3、strncasecmp()函數--大小寫不敏感

strncasecmp() 函數比較兩個字串(不區分大小寫)。語法如下

strncasecmp(string1,string2,length)

參數string1# #必需。規定要比較的第一個字串。 必要。規定要比較的第二個字串。
描述
string2
######length#########必要。規定每個字串用於比較的字元數。 ############

返回值:

  • 0 - 如果两个字符串相等

  • >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

示例:

<?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 = &#39;password&#39;;
$pwd2 = &#39;Password&#39;;
if(strncmp($pwd1, $pwd2,8) != 0){
    echo &#39;密码不匹配!&#39;;
} else {
    echo &#39;密码匹配!&#39;;
}
?>

php比較字串的函數是什麼

推荐学习:《PHP视频教程

以上是php比較字串的函數是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn