溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php比較字符串的函數(shù)怎么使用

發(fā)布時間:2022-09-01 11:14:05 來源:億速云 閱讀:106 作者:iii 欄目:編程語言

今天小編給大家分享一下php比較字符串的函數(shù)怎么使用的相關(guān)知識點,內(nèi)容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

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

php比較字符串的函數(shù)怎么使用

本教程操作環(huán)境:windows7系統(tǒng)、PHP8.1版、DELL G3電腦

php內(nèi)置了多種字符串比較函數(shù)

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

常用字符串比較函數(shù)

1、strcmp()函數(shù)--以區(qū)分大小寫的方式比較兩個字符串

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>";
?>

輸出:

php比較字符串的函數(shù)怎么使用

strcmp()函數(shù)在比較字符串時,是區(qū)分大小寫的。

<?php
$str1="億速云";
$str2="億速云";
echo strcmp($str1,$str2)."<br>";
?>

輸出結(jié)果:

-1

借助這個特性,我們可以將其運用在網(wǎng)站注冊賬號時的確認用戶密碼功能中(密碼通常是區(qū)分大小寫的),比較兩次輸入的密碼是否一致。

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

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

php比較字符串的函數(shù)怎么使用

但有時,我們只需要比較字符串的值,不想?yún)^(qū)分大小寫,例如比較網(wǎng)站的網(wǎng)址,那要怎么處理?簡單,可以使用strcasecmp()函數(shù)。

2、strcasecmp()函數(shù)--以不區(qū)分大小寫的方式比較兩個字符串

strcasecmp()函數(shù)和strcmp()函數(shù)類似,都可比較字符串,返回值也相同,區(qū)別只是strcasecmp()函數(shù)不區(qū)分大小寫。

下面我們來看看下面一個例子:

<?php
header("Content-type:text/html;charset=utf-8");
$url1="http://www.kemok4.com/";
$url2="HTTPS://WWW.PHP.CN/";
if(strcasecmp($url1, $url2) == 0){
        echo '兩個網(wǎng)址相同';
    } else {
        echo '兩個網(wǎng)址不同';
    }
?>

輸出結(jié)果:

兩個網(wǎng)址相同

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

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

strncasecmp(string1,string2,length)
參數(shù)描述
string1必需。規(guī)定要比較的第一個字符串。
string2必需。規(guī)定要比較的第二個字符串。
length必需。規(guī)定每個字符串用于比較的字符數(shù)。

返回值:

  • 0 - 如果兩個字符串相等

  • <0 - 如果 string1 小于 string2

  • >0 - 如果 string1 大于 string2

示例:

<?php
echo strncasecmp("Hello world!","hello earth!",6);
?>

輸出:

0

4、strnatcasecmp()函數(shù)--大小寫不敏感

strnatcasecmp() 函數(shù)使用一種"自然"算法來比較兩個字符串(不區(qū)分大小寫)。

在自然算法中,數(shù)字 2 小于數(shù)字 10。在計算機排序中,10 小于 2,這是因為 10 中的第一個數(shù)字小于 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()函數(shù)--大小寫敏感

strncmp() 函數(shù)比較兩個字符串(區(qū)分大小寫)。

該函數(shù)與 strcmp() 函數(shù)類似,不同的是,strcmp() 沒有 length 參數(shù)(不能指定每個字符串用于比較的字符數(shù))。

strncmp(string1,string2,length)
參數(shù)描述
string1必需。規(guī)定要比較的第一個字符串。
string2必需。規(guī)定要比較的第二個字符串。
length必需。規(guī)定每個字符串用于比較的字符數(shù)。

返回值和strcmp()  函數(shù)一樣

<?php
header("Content-type:text/html;charset=utf-8");
$pwd1 = 'password';
$pwd2 = 'Password';
if(strncmp($pwd1, $pwd2,8) != 0){
    echo '密碼不匹配!';
} else {
    echo '密碼匹配!';
}
?>

php比較字符串的函數(shù)怎么使用

以上就是“php比較字符串的函數(shù)怎么使用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI