php字串操作函式集
字串的整理:chop(),ltrim()和trim()
整理字串的第一步是清理字串中多餘的空格.
預設情況下,除去的字元是換行符和回車符(n和r),水平和垂直製表符(t和 x0b),字串結束符(0)和空格.除了這個預設的過濾字元列表外,還可以在該函式的第二個引數中提供要過濾的特殊字元.
這三個函式不同之處是:trim()將除去字串前後的空格,而ltrim()只從字串的開始處(左邊)除去空格.rtrim()是從字元穿的結束處除去空格.
格式化字串以便顯示
1,使用html格式化:nl2br()函式
nl2br()函式將字串作為輸入引數,用xhtml中的
標記代替字串中的換行符.
2,為列印輸出而格式化字串
php也支援print()結構,他實現的功能與echo相同.
printf()函式是將乙個格式化的字串輸出到瀏覽器中,而sprintf()函式是返回乙個格式化了的字串.
見下面:
printf (」total amount of order is %s.」,$total);
格式化字串中的%s是轉換說明.它的意思是」用乙個字串來代替」.
如果想列印乙個」%」符號,必須使用」%%」.
再看乙個例子:
printf(」total amount of order is %.2f(with shipping %.2f)」, $total, $total_shipping);
轉換說明的型別碼
b 解釋為整數並作為二進位制數輸出.
c 解釋為整數並作為字元輸出.
d 解釋為整數並作為小數輸出.
f 解釋為雙精度並作為浮點數輸出
o 解釋為整數並作為八進位制輸出
s 解釋為字串並作為字串輸出
u 解釋為整數並作為非指定小數輸出
x 解釋為整數並作為帶有小寫字母a-f的十六進製制數輸出
x 解釋為整數並作為帶有大寫字母a-f的十六進製制數輸出
3,改變字串中的字母大小寫
strtoupper() 將字串轉換為大寫
strtolower() 將字串轉換為小寫
ucfirst() 如果字串的第乙個字元是字母,就將該字元轉換為大寫
ucwords() 將字串每個單詞的第乙個字母轉換為大寫
格式化字串以便儲存:addslashes(), stripslashes()
存到資料庫裡的資料,有些可能會被解釋成控制符號,這些有問題的字元就是:引號(單引和雙引),反斜槓()和null字元.
為了將這些字元進行轉義處理,可以在他們前面加乙個反斜槓.
儲存資料時,先用addslashes()處理字串,加上反斜槓.在顯示使用者資料之前,必須用stripslashes()去掉引號特性.
php配置也可以自動啟動魔術引號特性,這個功能是由magic_quotes_gpc指令控制的.
用字串函式連線和分割字串
使用函式explode(),implode()和join()
如:$email_array=explode(』@',$email);
這裡將顧客的電子郵件分割成兩部分。並存放在$email_array[0]和$email_array[1].
然而,這個函式不能分割大寫字母的字串.所以處理之前應該先轉換成小寫的.
使用implode()和join()函式可以實現與explode(0相反的效果.這兩個函式效果一樣.
使用strtok()函式
與explode()每次都將乙個字串全部分割成若干小塊不同,strtok()函式一次只從字串中取出一些片段(成為令牌).對於一次從字串中取出乙個單詞的處理來說,strtok()效果更好.
使用substr()函式
函式substr()允許我們訪問乙個字串給定起點和終點的字串.
如:$test=』your customer service is excellent』;
substr($test,1);
將返回:」our customer service is excellent」
substr($test,-9);
將返回:」excellent」
這個函式的第3個引數可以限制返回的字元大小:
substr($test, 5, -13);
將返回:」customer service」
字串的比較
字串的排序:strcmp() , strcasecmp() , 和 strnatcmp()
函式原型:
int strcmp(string str1, string str2);
該函式需要兩個進行比較的引數字串.如果這兩個字串相等,該函式返回0,如果按字典順序str1在str2後面(大於str2)就返回乙個正數.否則返回乙個負數. 這個函式是區分大小寫的.
函式strcasecmp()除了不區分大小寫之外,其他和strcmp()一樣.
函式strnatcmp()以及與之對應的不區分大小寫的strnatcasecmp()函式是按」自然排序」比較字串的.
所謂」自然排序」是按人們習慣的順序,如:strcmp()會認為2大於12,因為按字典順序2大於12.然而,strnatcmp()則是相反.
使用strlen()函式測試字串的長度
使用字串函式匹配和替換子字串
在字串中查詢字串:strstr(), strchr() ,strrchr() ,和stristr().
如:if (strstr($feedback,』shop』))
$toaddress=』[email protected]』;
else if (strstr($feedback,』delivery』))
$toaddress=』[email protected]』;
函式strstr有兩個變體, 乙個是stristr(),區別在於他不區分大小寫.地二個是strrchr(),他幾乎和strstr()一樣,但是strstr是從第乙個出現 needle的位置的前面返回字串,而strrchr()是從最後乙個needle的位置返回.
查詢子字串的位置:strpos() ,strrpos()
如下面的**,會在瀏覽器中顯示數值4:
$test=』hello world』;
echo strpos($test,』o');
再如echo strpos($test,』o',5);
會返回7,因為第三個引數說明了在位置5開始搜尋.
strrpos()也幾乎是一樣的,但是他返回的是從最後一次出項子字串needle的位置.
替換子字串:str_replace(), substr_replace()
最常用的是str_replace(),它的原型是:
mixed str_replace(mixed needle,mixed new_needle, mixed haystack [,int &count]));
這個函式用new_needle替換所有haystack中的needle,並且返回haystack替換後的結果.可選的第四個引數是count,它包含要執行的替換操作次數.
例如過濾」感**彩」單詞的語句:
$feedback= str_replace($offcolor,』%!@』,$feedback);
substr_replace的原型:
string substr_replace(string string,string replacement,int start , int[length]);
這個函式使用字串replacement替換字串string中的一部分.具體是哪一部分則取決於起始位置和可選引數lengeh的值.
$test=substr_replace($test,』x',-1);
這段**會用』x'替換$test的最後乙個字元.
php字串操作
一空格特殊字元 1 string trim string str string charlist 去除字串開始結尾位置的空格和特殊字元 如果沒有第二個引數只去除空格 2 string ltrim string str string charlist 去除字串開始位置的空格和特殊字元 3 string...
PHP 字串操作
可以使用trim 函式去除字串開始位置和結束位置的空格,並把結果字串返回。預設情況下,去除 n r t xob 0和空格。也可以傳入第二個引數提供要過濾的特殊字元。ltrim 只從字串開始處去除,rtrim 只從字串結束處去除。nl2br 函式將會把字串中的換行符替換為 標記。當字串中含有一些有問題...
php字串操作
一空格特殊字元 1 string trim string str string charlist 去除字串開始結尾位置的空格和特殊字元 如果沒有第二個引數只去除空格 2 string ltrim string str string charlist 去除字串開始位置的空格和特殊字元 3 string...