PHP字串操作函式集

2021-04-25 11:31:51 字數 3848 閱讀 1557

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...