一般常用==運(yùn)算符來比較兩個(gè)字符串是否相等。使用PHP可以進(jìn)行一些更復(fù)雜的比較。這些比較分為兩類:部分匹配和其他情況。在比較字符串之前,先看看字符串排序函數(shù):strcmp()、strcasecmp()和strnatcmp()。它們可用于字符串的排序。當(dāng)進(jìn)行數(shù)據(jù)排序時(shí),這些函數(shù)是非常有用的。
strcmp()函數(shù)的基本用法如下:int strcmp(string str1, string str2);
該函數(shù)需要兩個(gè)進(jìn)行比較的參數(shù)字符串。如果這兩個(gè)字符串相等,該函數(shù)就返回0,如果按字典順序strl在str2后面(大于str2)就返回一個(gè)正數(shù),如果strl小于str2就返回一個(gè)負(fù)數(shù)。這個(gè)函數(shù)是區(qū)分大小寫的。函數(shù)strcasecmp()除了不區(qū)分大小寫之外,其他用法和strcmp()一樣。
函數(shù)strnatcmp()也不區(qū)分大小寫,但將按“自然排序”比較字符串,所謂自然排序是按人們習(xí)慣的順序進(jìn)行排序。例如,strcmp()會(huì)認(rèn)為2大于12,因?yàn)榘醋值漤樞?要大于12,而strnatcmp()函數(shù)則是相反。關(guān)于自然排序可以訪問 http://www.linuxcare.com.au/projects/natsort/網(wǎng)頁(yè)了解更多信息。
使用strlen()函數(shù)可以檢查字符串的長(zhǎng)度。如果傳給它一個(gè)字符串,這個(gè)函數(shù)將返回字符串的長(zhǎng)度。例如,如下所示的代碼將返回5:echo strlen("hello")
這個(gè)函數(shù)可以用來驗(yàn)證輸入的數(shù)據(jù)。【示例】檢驗(yàn)一個(gè)保存在$email變量中的電子郵件地址的基本方法就是檢查它的長(zhǎng)度。根據(jù)推理,如果一個(gè)國(guó)家的代碼沒有二級(jí)域名,只有一個(gè)字母的服務(wù)器名稱和一個(gè)字母的電子郵件地址,那么它的最小長(zhǎng)度是6個(gè)字符,如a@a.to。因此,如果一個(gè)地址沒有達(dá)到這個(gè)長(zhǎng)度就會(huì)提示錯(cuò)誤。
if (strlen($email) < 6){ echo "郵箱地址非法"; exit; //退出PHP程序}很明顯,這是一個(gè)驗(yàn)證信息是否有效的非常簡(jiǎn)單的方法。