您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“php中有沒有字符串比較方法”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“php中有沒有字符串比較方法”這篇文章吧。
php中有字符串比較方法。php內(nèi)置了多種字符串比較方法:strcasecmp()、strcmp()、strcoll()、strnatcasecmp()、strnatcmp()、strncasecmp()、strncmp()等。
本教程操作環(huán)境:windows7系統(tǒng)、PHP7.1版、DELL G3電腦
php中有字符串比較方法。
php內(nèi)置了多種字符串比較方法:
函數(shù) | 描述 |
---|---|
strcasecmp() | 比較兩個字符串(大小寫不敏感)。 |
strcmp() | 比較兩個字符串(大小寫敏感)。 |
strcoll() | 比較兩個字符串(根據(jù)本地設(shè)置)。 |
strnatcasecmp() | 使用一種"自然排序"算法來比較兩個字符串(大小寫不敏感)。 |
strnatcmp() | 使用一種"自然排序"算法來比較兩個字符串(大小寫敏感)。 |
strncasecmp() | 前 n 個字符的字符串比較(大小寫不敏感)。 |
strncmp() | 前 n 個字符的字符串比較(大小寫敏感)。 |
substr_compare() | 從指定的開始位置(二進制安全和選擇性區(qū)分大小寫)比較兩個字符串。 |
1. 按照字節(jié)進行字符串的比較
按照字節(jié)進行字符串的比較方法有兩種,分別是利用 strcmp()函數(shù)和 strcasecmp()函數(shù)。 這兩種函數(shù)的區(qū)別是 strcmp()函數(shù)區(qū)分字符的大小寫,而strcasecmp()函數(shù)不區(qū)分字符的大小寫。由于這兩個函數(shù)的實現(xiàn)方法基本相同,這里只是拿出其中的 strcmp()函數(shù)來進行一下介紹。
strcmp()函數(shù)用來對兩個字符串按字節(jié)進行比較。
語法格式如下:
strcmp(string1, string2)
注意 該函數(shù)區(qū)分字母大小寫。參數(shù)string1 和 參數(shù)string2 指定要比較的兩個字符串。如果相等則函數(shù)返回值為0;如果參數(shù) string1 大于參數(shù) string2,則函數(shù)返回值大于0;如果參數(shù) string1 小于參數(shù) string2,則函數(shù)返回值小于0。
使用 srtcmp()函數(shù)和 strcasecmp()函數(shù)分別對兩個字符串按字節(jié)進行比較,代碼實例如下:
<?php $str1 = "PHP學(xué)習(xí)手冊!"; // 定義字符串常量 $str2 = "PHP學(xué)習(xí)手冊!"; // 定義字符串常量 $str3 = "phpcn"; // 定義字符串常量 $str4 = "PHPCN"; // 定義字符串常量 echo strcmp($str1,$str2); // 這兩個字符串相等 echo strcmp($str3,$str4); // 注意該函數(shù)區(qū)分大小寫 echo strcasecmp($str3,$str4); //該函數(shù)不區(qū)分大小寫 ?>
輸出結(jié)果為:
0 1 0
說明: 在PHP中,對字符串之間進行比較的應(yīng)用是非常廣泛的。比如,使用strcmp()函數(shù)比較在用戶登錄體統(tǒng)中輸入的用戶名和密碼是否正確,如果在驗證用戶和密碼時不用此函數(shù),那么輸入用戶名和密碼無論是大寫還是小寫,只要正確即可登錄。使用了 srtcmp()函數(shù)之后就避免了這種情況,及時正確,也必須大小寫全部匹配才可以登錄,從而提高了網(wǎng)站的安全性。
2. 按自然排序法進行字符串的比較
在PHP中,按照自然排序法進行字符串的比較是通過使用 strnatcmp()函數(shù)來實現(xiàn)的。自認排序法比較的是字符串的數(shù)字部分,將字符串中的數(shù)字按照大小進行比較。它的語法是如下的格式:
strnatcmp(string1, string2)
提示: 該函數(shù)區(qū)分字母大小寫。如果參數(shù)string1 和 參數(shù)string2相等則函數(shù)返回值為0;如果參數(shù) string1 大于參數(shù) string2,則函數(shù)返回值大于0;如果參數(shù) string1 小于參數(shù) string2,則函數(shù)返回值小于0。
注意:在自然運算法則中,2比10小,然而在計算機的序列中,10比2小,因為"10" 中的第一個數(shù)字是“1”,它是小于“2”的。
使用 strnatcmp()函數(shù)按照自然排序法進行字符串的比較的實例代碼如下所示:
<?php $str1 = "inter2.jpg"; // 定義字符串常量 $str2 = "inter10.jpg"; // 定義字符串常量 $str3 = "phpcn1"; // 定義字符串常量 $str4 = "PHPCN2"; // 定義字符串常量 echo strnatcmp($str1,$str2); // 按自然排序法進行比較,返回-1 echo strnatcmp($str3,$str4); // 按自然排序法進行比較,返回1 ?>
輸出的結(jié)果為:
-1 1
說明: 按照自認排序法進行比較,還可以使用另一個與 strnatcmp()函數(shù)作用相同,但不區(qū)分大小的strnatcasecmp()函數(shù)。
3. 指定從源字符串位置開始比較的函數(shù)
strncmp()函數(shù)用來比較字符串中的前n個字符。
它的語法是如下的格式:
strncmp(string1, string2, length)
它的參數(shù)說明如下:如果參數(shù)string1 和 參數(shù)string2相等則函數(shù)返回值為0;如果參數(shù) string1 大于參數(shù) string2,則函數(shù)返回值大于0;如果參數(shù) string1 小于參數(shù) string2,則函數(shù)返回值小于0。該函數(shù)區(qū)分字母大小寫。
參 數(shù) | 說 明 |
string1 | 指定參與比較的第一個字符串對象 |
string2 | 指定參與比較的第二個字符串對象 |
length | 必要參數(shù),指定每個字符串中參與比較字符串的數(shù)量 |
使用strncmp()函數(shù)比較字符串的前兩個字符是否與源字符串相等,其實例代碼如下所示:
<?php $str1 = "I like this"; // 定義字符串常量 $str2 = "i study php"; // 定義字符串常量 echo strncmp($str1,$str2,2); // 比較前兩個字符 ?>
輸出結(jié)果為:
-1
注釋:從上面的代碼中可以看出,由于變量$str2 中的字符串的首字母為小寫,與變量$str1 中的字符串不匹配,所以兩個字符串比較過后的函數(shù)返回值為 -1。
以上是“php中有沒有字符串比較方法”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(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)容。