在日常php的開(kāi)發(fā)中,字符串操作是最為常見(jiàn)的操作之一。而字符串大小寫(xiě)轉(zhuǎn)換就是其中一個(gè)非常重要的操作,使用中最為經(jīng)典的函數(shù)之一就是php的str_low函數(shù)。
str_low函數(shù)就是將一個(gè)字符串中的所有字符都轉(zhuǎn)換為小寫(xiě)字母,實(shí)現(xiàn)起來(lái)十分簡(jiǎn)單,例如:
$str = "PHP IS GOOD"; echo str_low($str);
輸出結(jié)果為:
php is good
從上面的例子里可以看出,str_low函數(shù)十分實(shí)用,可以幫助我們快速改變字符串大小寫(xiě),解決很多問(wèn)題。
為了更好的了解str_low函數(shù),我們還需要了解一些有關(guān)字符串大小寫(xiě)轉(zhuǎn)換的常識(shí)。
首先,我們需要知道ASCII碼表中,大寫(xiě)字母和小寫(xiě)字母的編碼是相鄰的。例如A的編碼為65,而a的編碼為97,二者之差就是32。所以只需要將字符的ASCII碼值加上32,就可以實(shí)現(xiàn)大小寫(xiě)轉(zhuǎn)換。
那么php中的str_low函數(shù)具體怎么實(shí)現(xiàn)呢?我們來(lái)看一下他的源碼:
function str_low($str) { $new_str=""; for($i=0;$i<strlen($str);$i++) { $ord=ord($str[$i]); if($ord>=65 and $ord<=90) { $new_str.=chr($ord+32); } else { $new_str.=$str[$i]; } } return $new_str; }
從上面的源碼中,可以看出str_low函數(shù)的具體實(shí)現(xiàn)方式:
- 對(duì)字符串進(jìn)行遍歷;
- 遇到大寫(xiě)字母就進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換方式是將這個(gè)字符的ascii碼值加上32;
- 將新的字符拼接到新的字符串上;
- 如果遇到小寫(xiě)字母就不進(jìn)行轉(zhuǎn)換,直接拼接到新字符串上。
使用起來(lái)非常簡(jiǎn)單,且易讀性很強(qiáng),非常適合初學(xué)php的開(kāi)發(fā)者使用。
str_low函數(shù)的使用范圍非常廣泛,例如:
- 將用戶輸入的字符串轉(zhuǎn)換為小寫(xiě),在數(shù)據(jù)庫(kù)中進(jìn)行查找;
- 將字符串的大小寫(xiě)統(tǒng)一,方便進(jìn)行比較;
- 實(shí)現(xiàn)類似于用戶名、密碼大小寫(xiě)不敏感的登錄功能;
- 實(shí)現(xiàn)對(duì)URL的大小寫(xiě)統(tǒng)一,避免不同大小寫(xiě)被搜索引擎視為不同的頁(yè)面等等。
總之,str_low函數(shù)的使用非常方便,適用面廣泛,相信對(duì)于每一個(gè)php開(kāi)發(fā)的初學(xué)者來(lái)說(shuō)都是非常重要的開(kāi)發(fā)工具之一。