PHP字符串處理總結


函數 描述
addcslashes() 返回在指定的字符前添加反斜杠的字符串。
addslashes() 返回在預定義的字符前添加反斜杠的字符串。
bin2hex() 把 ASCII 字符的字符串轉換為十六進制值。
chop() 刪除字符串右側的空白字符或其他字符。
chr() 從指定的 ASCII 值返回字符。
chunk_split() 把字符串分割為一系列更小的部分。
convert_cyr_string() 把字符串由一種 Cyrillic 字符集轉換為另一種。
convert_uudecode() 解碼 uuencode 編碼字符串。
convert_uuencode() 使用 uuencode 算法對字符串進行編碼。
count_chars() 返回有關字符串中所用字符的信息。
crc32() 計算字符串的 32 位 CRC。
crypt() 單向的字符串加密法(hashing)。
echo() 輸出一個或多個字符串。
explode() 把字符串打散為數組。
fprintf() 把格式化的字符串寫入到指定的輸出流。
get_html_translation_table() 返回由 htmlspecialchars() 和 htmlentities() 使用的翻譯表。
hebrev() 把希伯來文本轉換為可見文本。
hebrevc() 把希伯來文本轉換為可見文本,並把新行(\n)轉換為 <br>。
hex2bin() 把十六進制值的字符串轉換為 ASCII 字符。
html_entity_decode() 把 HTML 實體轉換為字符。
htmlentities() 把字符轉換為 HTML 實體。
htmlspecialchars_decode() 把一些預定義的 HTML 實體轉換為字符。
htmlspecialchars() 把一些預定義的字符轉換為 HTML 實體。
implode() 返回由數組元素組合成的字符串。
join() implode() 的別名。
lcfirst() 把字符串的首字符轉換為小寫。
levenshtein() 返回兩個字符串之間的 Levenshtein 距離。
localeconv() 返回本地數字及貨幣格式信息。
ltrim() 移除字符串左側的空白字符或其他字符。
md5() 計算字符串的 MD5 散列。
md5_file() 計算文件的 MD5 散列。
metaphone() 計算字符串的 metaphone 鍵。
money_format() 返回格式化為貨幣字符串的字符串。
nl_langinfo() 返回特定的本地信息。
nl2br() 在字符串中的每個新行之前插入 HTML 換行符。
number_format() 以千位分組來格式化數字。
ord() 返回字符串中第一個字符的 ASCII 值。
parse_str() 把查詢字符串解析到變量中。
print() 輸出一個或多個字符串。
printf() 輸出格式化的字符串。
quoted_printable_decode() 把 quoted-printable 字符串轉換為 8 位字符串。
quoted_printable_encode() 把 8 位字符串轉換為 quoted-printable 字符串。
quotemeta() 引用元字符。
rtrim() 移除字符串右側的空白字符或其他字符。
setlocale() 設置地區信息(地域信息)。
sha1() 計算字符串的 SHA-1 散列。
sha1_file() 計算文件的 SHA-1 散列。
similar_text() 計算兩個字符串的相似度。
soundex() 計算字符串的 soundex 鍵。
sprintf() 把格式化的字符串寫入變量中。
sscanf() 根據指定的格式解析來自字符串的輸入。
str_getcsv() 把 CSV 字符串解析到數組中。
str_ireplace() 替換字符串中的一些字符(對大小寫不敏感)。
str_pad() 把字符串填充為新的長度。
str_repeat() 把字符串重復指定的次數。
str_replace() 替換字符串中的一些字符(對大小寫敏感)。
str_rot13() 對字符串執行 ROT13 編碼。
str_shuffle() 隨機地打亂字符串中的所有字符。
str_split() 把字符串分割到數組中。
str_word_count() 計算字符串中的單詞數。
strcasecmp() 比較兩個字符串(對大小寫不敏感)。
strchr() 查找字符串在另一字符串中的第一次出現。(strstr() 的別名。)
strcmp() 比較兩個字符串(對大小寫敏感)。
strcoll() 比較兩個字符串(根據本地設置)。
strcspn() 返回在找到某些指定字符的任何部分之前,在字符串中查找的字符數。
strip_tags() 剝去字符串中的 HTML 和 PHP 標簽。
stripcslashes() 刪除由 addcslashes() 函數添加的反斜杠。
stripslashes() 刪除由 addslashes() 函數添加的反斜杠。
stripos() 返回字符串在另一字符串中第一次出現的位置(對大小寫不敏感)。
stristr() 查找字符串在另一字符串中第一次出現的位置(大小寫不敏感)。
strlen() 返回字符串的長度。
strnatcasecmp() 使用一種"自然排序"算法來比較兩個字符串(對大小寫不敏感)。
strnatcmp() 使用一種"自然排序"算法來比較兩個字符串(對大小寫敏感)。
strncasecmp() 前 n 個字符的字符串比較(對大小寫不敏感)。
strncmp() 前 n 個字符的字符串比較(對大小寫敏感)。
strpbrk() 在字符串中查找一組字符的任何一個字符。
strpos() 返回字符串在另一字符串中第一次出現的位置(對大小寫敏感)。
strrchr() 查找字符串在另一個字符串中最后一次出現。
strrev() 反轉字符串。
strripos() 查找字符串在另一字符串中最后一次出現的位置(對大小寫不敏感)。
strrpos() 查找字符串在另一字符串中最后一次出現的位置(對大小寫敏感)。
strspn() 返回在字符串中包含的特定字符的數目。
strstr() 查找字符串在另一字符串中的第一次出現(對大小寫敏感)。
strtok() 把字符串分割為更小的字符串。
strtolower() 把字符串轉換為小寫字母。
strtoupper() 把字符串轉換為大寫字母。
strtr() 轉換字符串中特定的字符。
substr() 返回字符串的一部分。
substr_compare() 從指定的開始位置(二進制安全和選擇性區分大小寫)比較兩個字符串。
substr_count() 計算子串在字符串中出現的次數。
substr_replace() 把字符串的一部分替換為另一個字符串。
trim() 移除字符串兩側的空白字符和其他字符。
ucfirst() 把字符串中的首字符轉換為大寫。
ucwords() 把字符串中每個單詞的首字符轉換為大寫。
vfprintf() 把格式化的字符串寫到指定的輸出流。
vprintf() 輸出格式化的字符串。
vsprintf() 把格式化字符串寫入變量中。
wordwrap() 打斷字符串為指定數量的字串

 

strtoupper()://將字符串轉換為大寫
strtolower()://將字符串轉換為小寫
ucfirst()://把字符串中第一個字符換為大寫
//ucwords()://把字符串中每個單詞的首字母大寫

explode(',', $str)://根據,來把字符串打散成數組,如果出現空值(可以使用array_filter進行過濾),  array array_filter ( array $input [, callback $callback ] )
implode(',', $arr)://把數組元素用,連接起來成為一個字符串;join()也有這個作用
//strtok($str, 'abc')://該函數會根據第二參數中的每個字符(a, b, c)而非abc整體,來對$str進行分割,且其內部會記錄在字符串中的指針,因此可以不輸入$str
substr($str, 0, 9)://截取$str字符串中0為起點,長度為9的字符串(sub開頭的字符串操作函數多是以字符串下標作為參數)

strcmp($str1, $str2)://字符串排序(用$str1-$str2,若大於,結果為正,等於為0,小於,結果為負)
strcasecmp()://區分大小寫
strnatcmp()://按自然順序(人類習慣)對$str1, $str2排序,2小於12(strcmp()按字典排序,2大於12)
strlen('hello')://獲取字符串長度5;

strpos('hello', 'o', 2)//從hello的第3個位置開始搜索'o'第一次出現的位置(需要注意的是,若找不到函數會返回false,php中false等價於0,所以,需要使用 === 來判斷是否真找到字符串)
strrpos('hello', 'o', 2)://用法與上類似,但,是搜索'o'最后一次出現的位置

str_replace($old_str, $new_str, $all_str)://把$all_str中的$old_str全替換為$new_str字符串,
substr_replace($all_str, $new_str, 1, 3);將$all_str中的第2個位置開始,替換為$new_str字符串,第4參數決定替換終點(若無,則表示替換至 字符串末尾);


用於字符串過濾
1.html_entity_decode() 和htmlentities()://把 類似&amp; &#039;的html實體字符,轉換為字符(也就是& 和‘);后者相反(轉換全部字符!),意義不大
2.htmlspecialchars() 和 htmlspecialchars_decode() ://& , ",' ,<把這4個字符轉為html實體;后者相反
3.addslashes()和stripslashes()://對 ‘, ‘’, \, null前添加\。后者相反;(適用於mysql)
4.strip_tags//去除字符串中html和php標簽。
5.trim();//去除字符串頭和尾的空格,返回結果字符串;默認情況下處理:\n \r \t \x0B \0 以及空格,也可以在第二參數中寫入要過濾的特殊字符;
ltrim();rtrim();分別去除左右空格
6.nl2br();字符串中的換行符 替換為<br/>html實體 

1查找字符位置函數:   
strpos($str,search,[int]):查找search在$str中的第一次位置從int開始; 
stripos($str,search,[int]):函數返回字符串在另一個字符串中第一次出現的位置。該函數對大小寫不敏感 
strrpos($str,search,[int]):查找search在$str中的最后一次出現的位置從int開始
strripos($str,search,[int]):同上,該函數對大小寫不敏感

 

2、提取子字符串函數(雙字節)
substr($str,int start[,int length]):從$str中strat位置開始提取[length長度的字符串]。 
strstr($str1,$str2):從$str1(第一個的位置)搜索$str2並從它開始截取到結束字符串;若沒有則返回FALSE。 
stristr() 功能同strstr,只是不區分大小寫。 
strrchr() 從最后一次搜索到的字符處返回;用處:取路徑中文件名

 

3、替換字符串的PHP字符串函數
str_replace(search,replace,$str):從$str中查找search用replace來替換
str_ireplace(search,replace,$str):同上,該函數對大小寫不敏感 
strtr($str,search,replace):這個函數中replace不能為"";
substr_replace($Str,$rep,$start[,length]):$str原始字符串,$rep替換后的新字符串,$start起始置,$length替換的長度,該項可選

 

4、字符長度
int strlen($str)

 

5、比較字符函數 
int strcmp($str1,$str2):$str1>=<$str2分別為正1,0,-1(字符串比較) 
strcasecmp() 同上(不分大小寫)
strnatcmp("4","14") 按自然排序比較字符串 
strnatcasecmp() 同上,(區分大小寫)

 

6、分割成數組的PHP字符串函數 
str_split($str,len):把$str按len長度進行分割返回數組 
split(search,$str[,int]):把$str按search字符進行分割返回數組int是分割幾次,后面的將不分割 expload(search,$str[,int])

 

7、去除空格:
ltrim()、rtrim()、trim()

 

8、加空格函數 
chunk_split($str,2):向$str字符里面按2個字符就加入一個空格;

 

9、chr、ord

返回指定的字符或ascii

 

10、HTML代碼有關函數
nl2br():使\n轉換為<br>。
strip_tags($str[,'

']):去除HTML和PHP標記

在$str中所有HTML和PHP代碼將被去除,可選參數為html和PHP代碼作用是將保留可選參數所寫的代碼。 
如:echo strip_tags($text, '<br><p>');
htmlspecialchars($str[,參數]):頁面正常輸出HTML代碼參數,是轉換方式

 

11、字符大小寫轉換的PHP字符串函數 
strtolower($str): 字符串轉換為小寫 
strtoupper($str): 字符串轉換為大寫 
ucfirst($str): 將函數的第一個字符轉換為大寫 
ucwords($str): 將每個單詞的首字母轉換為大寫

 

12、數據庫相關的PHP字符串函數 
addslashes($str):使str內單引號(')、雙引號(")、反斜線(\)與 NUL
字符串轉換為\',\",\\。 
magic_quotes_gpc = On :自動對 get,post,cookie的內容進行轉義
get_magic_quotes_gpc():檢測是否打開magic_quotes_gpc
stripslashes(): 去除字符串中的反斜杠

 

PHP 常用字符串操作函數

1 拼接字符串 

拼接字符串是最常用到的字符串操作之一,在PHP中支持三種方式對字符串進行拼接操作,分別是圓點.分隔符{}操作,還有圓點等號.=來進行操作,圓點等號可以把一個比較長的字符串分解為幾行進行定義,這樣做是比較有好處的. 

 

2 替換字符串 

在PHP這門語言中,提供了一個名字叫做substr_replace()的函數,該函數的作用可以快速的完成掃描和編輯文本內容較多的字符串替換功能.他的語法格式: 
mixed substr_replace(mixed $string,string $replacement, int $start[,int $length]) 
對於上面的語法格式的說明: 
string 是要檢查或者將要被替換的字符串 
replacement 指定要用來插入或者替換的字符串 
start 指定在字符串的何處進行開始替換,這個參數可以取三種類型的值(正數:從字符串開頭的第start個偏移量開始替換,負數,從字符串結尾處的第start個偏移量開始替換,0:從字符串中的第一個字符開始替換) 
length指定要替換多少個字符,這個參數也可以取三種類型的值(正數:被替換的字符串的長度,負數:從字符串的結尾開始被替換的字符串的長度,0:是插入操作,而不是替換操作); 

 

3 計算字符串 

1)計算字符串的長度 
在PHP中,strlen()函數用來計算字符串的長度並且返回該字符串的長度信息.該語法的格式如下:int strlen(string $string)格式里面的string就是用來指定要計算長度的字符串. 

2)計算字符串的數目 
在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()函數的返回值就是一個數組,其中,數組的鍵名是單詞在字符串中的位置,值是實際的單詞. 

4,查找字符串 

字符串的查找可以分為很多種,比如說查找子字符串,查找某個字符串的位置等等,PHP分別為每個字符串查找操作提供了相應的函數. 

1)查找子字符串 
在PHP語言中,strstr()函數可以用來查找子字符串,該函數返回的結果為子字符串第一次出現的所有的內容,strstr()函數的格式如下:string strstr(string $haystack,mixed $needle)在上面的語法中,涉及到的參數的說明如下haystack:指定被搜索的字符串,needle指定所要搜索的字符串,如果該參數是數字的話,則會匹配器該數字ASCII值的字符.在實際的應用當中,會出現要忽略字母大小寫的情況,這個時候,可以使用PHP提供的一個大小寫不敏感的查找函數--stristr()函數,該函數的使用方法和strstr()函數的使用是一樣的. 
2)查找字符串的位置 
strpos()函數的功能和strstr()函數是類似的,只是返回的不是字符串,而是一個字符串在另外一個字符串當中第一次出現的位置,strpos()的語法格式如下:int strpos(string $haystack,mixed $needle[,int $offset =0])在上面的語法中涉及到的參數的說明如下:haystack是要被搜索的字符串,needle指定要進行查找的字符串,offset是指定開始搜索的位置,默認值為0. 
strpos()函數是一個對大小寫敏感的查找函數,但是在實際的應用過程當中往往會出現需要忽略大小寫的,這個時候可以使用PHP提供的一個對大小寫不是很敏感的查找函數stripos(),該函數的使用方法和strpos()是一樣的.

5,比較字符串 
在PHP語言中,比較兩個字符串的大小可以通過兩種方式來實現:使用"=="操作符比較和使用函數進行比較 

1)使用"=="操作符比較兩個字符串的大小 
在PHP中比較兩個字符串的時候,最容易的方法就是使用雙等號操作符(==). 
2)使用函數比較字符串的大小 
在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) 

6,復制字符串 
如果需要重復n次顯示一個字符或者一個字符串的功能,則最簡單的實現方法就是調用復制函數,在PHP中可以使用str_repeat()函數實現字符串的復制,這個函數的語法格式如下:string str_repeat(string $input,int $multiplier)在上述的語法中設計的參數的說明如下input指定要重復的字符串,multiplier指定字符串將被重復的次數. 

7,翻轉字符串 
處理字符串的操作還包括對字符串進行翻轉在PHP語言中,使用strrev()函數可以實現反轉字符串的功能,strrev()函數的語法格式為 
string strrev(string $string) 
上面的參數string就是用於指定要進行翻轉的字符串. 

8,切分,合並字符串 
把一個字符串按照某種規則切分成多個字符串,或者把多個字符串合並成一個長的字符串,是在處理字符串操作的時候會經常碰到的問題.使用PHP提供的explode()函數,str_split()函數,implode()函數可以處理類似切分,合並字符串的問題. 

1)切分字符串 
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". 
2)合並字符串 
implode()函數的功能是將數組的元素連接起來成為字符串,implode()函數的語法格式如下:string implode([string $glue],array $pieces)在上述的語法中涉及到的參數的說明如下:glue()指定數組元素之間放置的內容,默認值為""(表示空格字符串)pieces指定要合並為字符串的數組.調用implode()函數可以根據參數所限制的條件獲取一個新的字符串,達到合並字符串的目的. 
join()是implode()函數的別名,兩個函數的用法是完全一樣的,需要強調的是,雖然參數glue是可以選的,但是為了使程序擁有更好的兼容性,推薦使用兩個參數. 
總結一下字符串的相關操作方法: 

1)printf()函數:可以對字符串進行格式化操作 
2)sprintf()函數:可以對字符串進行格式化操作,與printf()函數的區別就是需要使用echo才能將格式化后的字符串顯示輸出. 
3)nl2br()函數:可以將字符串中的換行符"\n"轉換為HTML中的"<br/>"后顯示出來. 
4)wordwrap()函數:指定從某列字符進行強制換行 
5)strtolower()函數:該函數實現的功能是將字符串中的所有的字符全部轉換為小寫字符 
6)strtoupper()函數:該函數的作用就是將字符串中的所有的字符全部轉換為大寫的字符 
7)ucwords()函數:該函數的作用就是將字符串中所有的首字符全部轉換為大寫字符 
8)substr_replace()函數:可以快速完成掃描並且編輯文本內容較多的字符串的功能 
9)strlen()函數:可以計算字符串的長度並且返回該字符串的長度 
10)substr_count()函數:可以確定一個字符串在所提供的字符串中有多少個 
11)str_word_count()函數,可以確定一個字符串中某個單詞的出現次數. 
12)strstr()函數,可以用來查找子字符串,該函數的返回結果為子字符串第一次出現后的所有內容 
13)strpos()函數,功能和strstr()函數是類似的,只是返回的不是字符串,而是一個字符串在另一個字符串中第一次出現的位置. 
14)strcmp()函數,該函數的功能可以精確的比較兩個字符串的大小 
15)strncmp()函數,可以選擇要比較的字符串的長度(字符個數) 
16)strcasecmp()函數,可以在忽略大小寫的時候,對兩個字符串進行比較 
17)strncasecmp()函數,可以在忽略大小寫的前提下,對兩個字符串時候進行長度或者字符數目的比較. 
18)str_repeat()函數,重復n次顯示一個字符或者字符串的功能 
19)strrev()函數,提供對字符串進行翻轉的操作 
20)explode()函數,提供了將某個字符串切分為多個字符串的功能,指定分隔符吧字符串切分成數組. 
21)str_split()函數,能夠將一個字符串分割成等長度的多個子字符串 
22)implode()函數,將數組的元素連接起來成為字符串 
23)join()函數,使用方法與implode()函數是一摸一樣的,它的作用也是將數組元素連接起來成為一個字符串

 

php 判斷一個字符串是否包含另一個字符串

stripos($a, $b)  !==  false

如果$a 中存在 $b,則為 true ,否則為 false

用 !== false (或者 === false) 的原因是如果 $b 正好位於$a的開始部分,那么該函數會返回int(0),那么0是false,但$b確實位於$a中,所以要用 !== 判斷一下類型,要確保是嚴格的 false。
其它的還有 PHP 原生支持的函數,如 strstr(),stristr() 等,直接判斷就可以了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM