2013年1月23日 星期三

PHP 字串處理 及 常規表示式

trim(); //去頭尾空白。
ltrim(); //只去除頭部(左方)空白。
rtrim(); //只去除尾部(右方)空白。
chop(); //
只去除尾部(右方)空白,同rtrim()

strtoupper(); //字串全部轉大寫。
strtolower(); //字串全部轉小寫。
ucfirst(); //字串首字轉大寫,不會排除空白歐,也就是說如果第一個字是空白,就等於沒有效果了。
ucwords(); //字串中每個字的字首轉大寫 ( 會將段落中 空白 及 \n 斷行後的首單字變成大寫,如果是自己用br或p標籤斷行則無作用 )。

nl2br(); //將 \n 改成換行
print(); //同作用同echo,但print是函式,傳回布林值。
printf(); //格式化字串,傳回整數。

sprintf(); //格式化字串。
轉換規格%[顯示寬度][-][][.小數位數]型別:有-代表向左靠齊,沒-代表向右。
%b:將變數解釋為整數,並以二進位顯示。
%c:將變數解釋為整數,並以字元顯示。
%d:將變數解釋為整數,並以十進位顯示。
%f:將變數解釋為浮點數,並以浮點數顯示。
%o:將變數解釋為整數,並以八進位顯示。
%s:將變數解釋為字串,並以字串顯示。
%x:將變數解釋為整數,並以十六進位顯示,用a-f。
%X:將變數解釋為整數,並以十六進位顯示,用A-F。

addSlashes(); //若有反斜時,加上Slash,讓輸入字串若含特殊字元時,加上逸出字元\,以免存入資料庫時衝碼。Q3上引數為變數時,做完此運算立刻存回此變數,導致變數值改變;較新的版本,引數為變數時,做完此運算不會導致變數值改變。
mysql_escape_string與addslashes的區別在於:

mysql_escape_string總是將「'」轉換成「\'」 

而addslashes 
如果magic_quotes_sybase=on 時是將「'」轉換成「''」 
如果magic_quotes_sybase=off 時是將「'」轉換成「\'」

atripSlashes();
//若有反斜時,去掉Slash,使資料庫取出資料還原。Q3上引數為變數時,做完此運算立刻存回此變數,導致變數值改變;較新的版本,引數為變數時,做完此運算不會導致變數值改變。

strtok(字串,」分隔字元」); //擷取字串的前面到分字元為止。

substr(字串,開始字元,長度);
//擷取子字串,第一字元算0;開始字元為負,為字串尾減該數,即字尾算1倒數該數之字元。長度省略則取到字尾;長度為負則取到字尾倒數該數之字元。

strcmp(字串1,字串2);
//比較兩字串,相等為0,正為字串一ASC碼大,負數為字串二ASC碼大。

strcasecmp(字串1,字串2);
//同上,但不分大小寫。
strlen();:字串長度。
strstr(字串,欲找之子字串); //找到傳回子字串「第一次」出現以後之剩餘字串,找不到傳回「假」。
strchr(字串,欲找之子字串);://同上。
stristr(字串,欲找之子字串);://同上,但不分大小寫。
strrchr(字串,欲找之子字串); //找到傳回子字串「最後一次」出現以後之剩餘字串,找不到傳回「假」。
strpos(字串,欲找之子字串,指定蒐尋之起始位置); //找到傳回子字串「第一次」出現的位置,找不到傳回「假」。字串首位置算0,省略蒐尋起點時,從字串首開始找。但是「假」傳回值是0,字首位置傳回值也是0,會混淆。可以用if(傳回值===fasle)測,如果成立傳回值代表「假」,如果不成立傳回值代表位置0。

strrpos(字串,欲找之子字串,指定蒐尋之起始位置);
//找到傳回「子字串字首字元」「最後一次」出現的位置,找不到傳回「假」。字串首位置算0,省略蒐尋起點時,從字串首開始找。

str_replace(蒐尋字串,代換字串,字串堆);
//在字串堆中找到「蒐尋字串」並用「代換字串」換掉它們。

substr_replace(字串堆,代換字串,起點,長度);
//在字串堆指定的起點及長度,用代換字串換掉它們。起點為0或正,由字串堆頭起算;起點為負,由字串堆尾起算。長度未指定,則換到字串堆尾;長度為0,則插入原字串;長度為正,則取代幾個字串數;長度為負,則自尾端開如取代,停於長度。

沒有留言:

張貼留言