在編程的過程當中,字符串的操作是非常重要的並且經常會被用到,字符串常用的操作具體的包括字符串的拼接,替換字符串,查找字符串,比較字符串,復制字符串以及計算字符串的長度等等。
拼接字符串是最常用到的字符串操作之一,在PHP中支持三種方式對字符串進行拼接操作,分別是圓點.分隔符{}操作,還有圓點等號。=來進行操作,圓點等號可以把一個比較長的字符串分解為幾行進行定義,這樣做是比較有好處的。
在PHP這門語言中,提供了一個名字叫做substr_replace()的函數,該函數的作用可以快速的完成掃描和編輯文本內容較多的字符串替換功能。他的語法格式:mixed substr_replace(mixed $string,string $replacement,int $start,[int $length])
計算字符串的長度:在PHP中,strlen()函數用來計算字符串的長度並且返回該字符串的長度信息。該語法的格式如下:int strlen(string $string)格式裡面的string就是用來指定要計算長度的字符串。
計算字符串的數目:在PHP中,substr_count()函數,可以用來非常方便而且准確的確定一個指定的子字符串在所提供的字符串中有多少個,substr_count()函數的語法格式如下:int substr_count(string $haystack,string $needle[,int $offset=0[,int $length]])在上面的語法中設計的參數的說明如下:haystack指定要檢查的字符串,needle用來指定要插入的字符串,offset用來指定在字符串中何處開始搜索,默認值為0,length用來指定搜索的長度。
在PHP中,str_word_count()函數,可以用來非常方便而且准確的確定一個某一個單詞在所提供的字符串中有多少個,str_word_count()函數的語法格式如下:mixed str_word_count(string $string[,int $format=0[,string $charlist]])在上面的語法中涉及到的參數的說明如下:string用來指定要進行檢查的字符串,format用來指定str_word_count()函數的返回值,這個參數的返回值可以返回三個值,分別是0,1,2。其中返回0的意思是默認值,返回找到的單詞的數目,如果返回值為1的話,那麼str_word_count()返回的就是一個數組,其中的鍵名是從0開始的連續整數,值是實際的單詞。如果format的值取3的時候,那麼str_word_count()函數的返回值就是一個數組,其中,數組的鍵名是單詞在字符串中的位置,值是實際的單詞。
字符串的查找可以分為很多種,比如說查找子字符串,查找某個字符串的位置等等,PHP分別為每個字符串查找操作提供了相應的函數。
查找子字符串:在PHP語言中,strstr()函數可以用來查找子字符串,該函數返回的結果為子字符串第一次出現的所有的內容,strstr()函數的格式如下:string strstr(string $haystack,mixed $needle)在上面的語法中,涉及到的參數的說明如下haystack:指定被搜索的字符串,needle指定所要搜索的字符串,如果該參數是數字的話,則會匹配器該數字ASCII值的字符。在實際的應用當中,會出現要忽略字母大小寫的情況,這個時候,可以使用PHP提供的一個大小寫不敏感的查找函數--stristr()函數,該函數的使用方法和strstr()函數的使用是一樣的。
查找字符串的位置:strpos()函數的功能和strstr()函數是類似的,只是返回的不是字符串,而是一個字符串在另外一個字符串當中第一次出現的位置,strpos()的語法格式如下:int strpos(string $haystack,mixed $needle[,int $offset =0])在上面的語法中涉及到的參數的說明如下:haystack是要被搜索的字符串,needle指定要進行查找的字符串,offset是指定開始搜索的位置,默認值為0。
strpos()函數是一個對大小寫敏感的查找函數,但是在實際的應用過程當中往往會出現需要忽略大小寫的,這個時候可以使用PHP提供的一個對大小寫不是很敏感的查找函數stripos(),該函數的使用方法和strpos()是一樣的。
在PHP語言中,比較兩個字符串的大小可以通過兩種方式來實現:使用"=="操作符比較和使用函數進行比較
使用"=="操作符比較兩個字符串的大小:在PHP中比較兩個字符串的時候,最容易的方法就是使用雙等號操作符(==)。
使用函數比較字符串的大小:在PHP中提供的strcmp()函數可以更加精確的比較兩個字符串的大小,語法格式如下int strcmp(string $str1,string $str2)在上述語法中涉及到的參數的說明如下:str1 指定要進行比較的字符串1,str2指定要進行比較的字符串2。這個strcmp谙熟可以確保兩個字符串是否完全匹配,並將比較結果以整數的形式返回,這個函數的返回值有以下三種。0:兩個字符串是相等的,小於0的時候,第一個字符串是小於後面的字符串的,如果返回值是大於零的,那麼就說明,前面的字符串是大於後面的字符串的。
除了strcmp()函數之外,PHP還提供了另外一些比較類似的比較函數,比如strncmp()函數可以選擇想要比較的字符串的長度(字符個數),其語法格式如下:int strcmp(string $str1,string $str2,int $len)上面的參數說明 str1:指定要比較的第一個字符串,str2:指定要比較的第二個字符串len:指定每個字符串用於比較的字符個數。
在比較字符串的時候,有的時候需要忽略大小寫,就可以使用strcasemp()函數和strncasemp()函數,這兩個函數與區分大小寫的相應函數的使用方法是完全相同的,strcasecmp()函數和strncasecmp()兩個函數的語法格式分別如下:
int strcasecmp(string $str1,string $str2)
int strncasecmp(string $str1,string $str2,int $len)
如果需要重復n次顯示一個字符或者一個字符串的功能,則最簡單的實現方法就是調用復制函數,在PHP中可以使用str_repeat()函數實現字符串的復制,這個函數的語法格式如下:string str_repeat(string $input,int $multiplier)在上述的語法中設計的參數的說明如下input指定要重復的字符串,multiplier指定字符串將被重復的次數。
處理字符串的操作還包括對字符串進行翻轉在PHP語言中,使用strrev()函數可以實現反轉字符串的功能,strrev()函數的語法格式為 string strrev(string $string)
上面的參數string就是用於指定要進行翻轉的字符串。
把一個字符串按照某種規則切分成多個字符串,或者把多個字符串合並成一個長的字符串,是在處理字符串操作的時候會經常碰到的問題。使用PHP提供的explode()函數,str_split()函數,implode()函數可以處理類似切分,合並字符串的問題。
切分字符串:explode()函數的功能就是用指定的分隔符把字符串切分成數組,explode()函數的語法格式如下:array explode(string $delimiter,string $string[,int $limit])在上面的語法中涉及到的參數的說明如下:delimiter:指定在哪裡分隔字符串,string:指定要進行分割的字符串,limit:指定所返回的數組元素的最大數目,最後的子塊將會包含string的剩余部分。
str_split()函數的作用是能夠將一個字符串分割成等長度的多個子字符串。str_split()函數的語法格式如下:array str_split(string $string[,int $split_length=1])上面的語法中的參數說明如下:string:指定要分割的字符串,split_length:指定每個數組元素的長度,默認值為"1"。
合並字符串:implode()函數的功能是將數組的元素連接起來成為字符串,implode()函數的語法格式如下:string implode([string $glue],array $pieces)在上述的語法中涉及到的參數的說明如下:glue()指定數組元素之間放置的內容,默認值為""(表示空格字符串)pieces指定要合並為字符串的數組。調用implode()函數可以根據參數所限制的條件獲取一個新的字符串,達到合並字符串的目的。
join()是implode()函數的別名,兩個函數的用法是完全一樣的,需要強調的是,雖然參數glue是可以選的,但是為了使程序擁有更好的兼容性,推薦使用兩個參數。
總結一下字符串的相關操作方法: