溫馨提示×

溫馨提示×

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

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

php中有沒有字符串比較方法

發(fā)布時間:2022-03-08 09:37:20 來源:億速云 閱讀:152 作者:小新 欄目:編程語言

這篇文章主要為大家展示了“php中有沒有字符串比較方法”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“php中有沒有字符串比較方法”這篇文章吧。

php中有字符串比較方法。php內(nèi)置了多種字符串比較方法:strcasecmp()、strcmp()、strcoll()、strnatcasecmp()、strnatcmp()、strncasecmp()、strncmp()等。

php中有沒有字符串比較方法

本教程操作環(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è)資訊頻道!

向AI問一下細節(jié)

免責(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)容。

php
AI