這篇文章主要為大家展示了“php中有沒有字符串比較方法”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“php中有沒有字符串比較方法”這篇文章吧。
創(chuàng)新互聯(lián),專注為中小企業(yè)提供官網(wǎng)建設(shè)、營(yíng)銷型網(wǎng)站制作、響應(yīng)式網(wǎng)站建設(shè)、展示型網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè)等服務(wù),幫助中小企業(yè)通過網(wǎng)站體現(xiàn)價(jià)值、有效益。幫助企業(yè)快速建站、解決網(wǎng)站建設(shè)與網(wǎng)站營(yíng)銷推廣問題。
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() | 比較兩個(gè)字符串(大小寫不敏感)。 |
strcmp() | 比較兩個(gè)字符串(大小寫敏感)。 |
strcoll() | 比較兩個(gè)字符串(根據(jù)本地設(shè)置)。 |
strnatcasecmp() | 使用一種"自然排序"算法來(lái)比較兩個(gè)字符串(大小寫不敏感)。 |
strnatcmp() | 使用一種"自然排序"算法來(lái)比較兩個(gè)字符串(大小寫敏感)。 |
strncasecmp() | 前 n 個(gè)字符的字符串比較(大小寫不敏感)。 |
strncmp() | 前 n 個(gè)字符的字符串比較(大小寫敏感)。 |
substr_compare() | 從指定的開始位置(二進(jìn)制安全和選擇性區(qū)分大小寫)比較兩個(gè)字符串。 |
1. 按照字節(jié)進(jìn)行字符串的比較
按照字節(jié)進(jìn)行字符串的比較方法有兩種,分別是利用 strcmp()函數(shù)和 strcasecmp()函數(shù)。 這兩種函數(shù)的區(qū)別是 strcmp()函數(shù)區(qū)分字符的大小寫,而strcasecmp()函數(shù)不區(qū)分字符的大小寫。由于這兩個(gè)函數(shù)的實(shí)現(xiàn)方法基本相同,這里只是拿出其中的 strcmp()函數(shù)來(lái)進(jìn)行一下介紹。
strcmp()函數(shù)用來(lái)對(duì)兩個(gè)字符串按字節(jié)進(jìn)行比較。
語(yǔ)法格式如下:
strcmp(string1, string2)
注意 該函數(shù)區(qū)分字母大小寫。參數(shù)string1 和 參數(shù)string2 指定要比較的兩個(gè)字符串。如果相等則函數(shù)返回值為0;如果參數(shù) string1 大于參數(shù) string2,則函數(shù)返回值大于0;如果參數(shù) string1 小于參數(shù) string2,則函數(shù)返回值小于0。
使用 srtcmp()函數(shù)和 strcasecmp()函數(shù)分別對(duì)兩個(gè)字符串按字節(jié)進(jìn)行比較,代碼實(shí)例如下:
輸出結(jié)果為:
0 1 0
說(shuō)明: 在PHP中,對(duì)字符串之間進(jìn)行比較的應(yīng)用是非常廣泛的。比如,使用strcmp()函數(shù)比較在用戶登錄體統(tǒng)中輸入的用戶名和密碼是否正確,如果在驗(yàn)證用戶和密碼時(shí)不用此函數(shù),那么輸入用戶名和密碼無(wú)論是大寫還是小寫,只要正確即可登錄。使用了 srtcmp()函數(shù)之后就避免了這種情況,及時(shí)正確,也必須大小寫全部匹配才可以登錄,從而提高了網(wǎng)站的安全性。
2. 按自然排序法進(jìn)行字符串的比較
在PHP中,按照自然排序法進(jìn)行字符串的比較是通過使用 strnatcmp()函數(shù)來(lái)實(shí)現(xiàn)的。自認(rèn)排序法比較的是字符串的數(shù)字部分,將字符串中的數(shù)字按照大小進(jìn)行比較。它的語(yǔ)法是如下的格式:
strnatcmp(string1, string2)
提示: 該函數(shù)區(qū)分字母大小寫。如果參數(shù)string1 和 參數(shù)string2相等則函數(shù)返回值為0;如果參數(shù) string1 大于參數(shù) string2,則函數(shù)返回值大于0;如果參數(shù) string1 小于參數(shù) string2,則函數(shù)返回值小于0。
注意:在自然運(yùn)算法則中,2比10小,然而在計(jì)算機(jī)的序列中,10比2小,因?yàn)?10" 中的第一個(gè)數(shù)字是“1”,它是小于“2”的。
使用 strnatcmp()函數(shù)按照自然排序法進(jìn)行字符串的比較的實(shí)例代碼如下所示:
輸出的結(jié)果為:
-1 1
說(shuō)明: 按照自認(rèn)排序法進(jìn)行比較,還可以使用另一個(gè)與 strnatcmp()函數(shù)作用相同,但不區(qū)分大小的strnatcasecmp()函數(shù)。
3. 指定從源字符串位置開始比較的函數(shù)
strncmp()函數(shù)用來(lái)比較字符串中的前n個(gè)字符。
它的語(yǔ)法是如下的格式:
strncmp(string1, string2, length)
它的參數(shù)說(shuō)明如下:如果參數(shù)string1 和 參數(shù)string2相等則函數(shù)返回值為0;如果參數(shù) string1 大于參數(shù) string2,則函數(shù)返回值大于0;如果參數(shù) string1 小于參數(shù) string2,則函數(shù)返回值小于0。該函數(shù)區(qū)分字母大小寫。
參 數(shù) | 說(shuō) 明 |
string1 | 指定參與比較的第一個(gè)字符串對(duì)象 |
string2 | 指定參與比較的第二個(gè)字符串對(duì)象 |
length | 必要參數(shù),指定每個(gè)字符串中參與比較字符串的數(shù)量 |
使用strncmp()函數(shù)比較字符串的前兩個(gè)字符是否與源字符串相等,其實(shí)例代碼如下所示:
輸出結(jié)果為:
-1
注釋:從上面的代碼中可以看出,由于變量$str2 中的字符串的首字母為小寫,與變量$str1 中的字符串不匹配,所以兩個(gè)字符串比較過后的函數(shù)返回值為 -1。
以上是“php中有沒有字符串比較方法”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!