php字符串操做

1.字符串的格式化

按照從表單提交數據以後,php處理的不一樣:接受,顯示,存儲。也有三種類型的格式化方法。php

1.1字符串的接收以後的整理: trim(),ltrim(),rtrim()

當數據從表單中上傳上來的時候須要對字符串整理一下,去掉字符串先後的空格或者其餘字符。
** trim()就是去掉字符串先後的空格、製表符、換行符等等。
ltrim()去掉左邊的,就是清理開頭那一端
rtrim()**去掉右邊的,就是結尾那一端的
$name = trim($_POST['name']);正則表達式

1.2格式化字符串以便顯示

** 1.使用HTML格式化:nl2br()**
接收字符串做爲參數,將字符串中的換行符更改成HTML中的
,便於在網站頁面中顯示
** 2.改變字符串中的字母大小寫**
** strtoupper()將字符串轉換爲大寫
stroutlower將字符串轉換爲小寫
ucfirst()若是字符串的第一個字符是字母,就將該字符大寫
ucwords將字符串中的每一個單詞的第一個字母轉換爲大寫
3.格式化字符串以便存儲:addslashes()**
數據庫有時候會把字符串李米娜的引號,反斜槓,NULL字符當作是控制字符,這樣會致使向數據庫中存儲數據失敗。這種狀況可使用轉義符來轉義,也可使用咱們的轉義字符串的函數
例如使用addslashes()函數:
$feedback = addslashes(trim($_POST['feedback']));數據庫

2.字符串的連接和分割

咱們會常常從字符串中提取出想要的字符串,以及添加一些字符串。如下就是一些經常使用的方法函數
** 2.1使用函數explode()、implode()、join()**
** explode()接收兩個參數,是按照給出的分隔符來分割字符串,並將結果返回到一個數字索引型的字符串裏面。還有一個可選參數是用來限制分紅字符串小塊的數量
~php
$email = ghoaishg@163.com;
$email_array = explode('@', $email);
~
$email_array就是一個數字索引型的字符串,能夠經過索引得到本身想要的。
implode()和join()的做用和explode()徹底相反,是從數組中獲取數組元素來組成一個新的字符串。接收的第一個參數是你想要用來鏈接這些元素的分割符,第二個參數是一個數組操做對象,返回結果是一個字符串
2.2使用strtok()函數**
同explode()的方法差很少,將字符串按照給定的分隔符來分割,不一樣之處在於srttok()函數每次只會返回被分隔的一部分,通常能夠跟while語句連用。這個函數的特色是每次只返回一個
2.3使用substr()函數
這個函數是用來截取字符串中的一部分長度的,接收兩個參數分別是:須要操做的字符串和開始截取的位置。第三個參數是可選參數,用來限定截取的長度的。
第二個參數也能夠是負數,負數表示從字符串的末尾向前數
substr($test, -9);數組

3.字符串的比較

3.1字符串的排序:strcmp(),strcasecmp(),strnatcmp()
這三個函數都是比較兩個字符串大小的。來看函數原型
int strcmp(string str1, string str2);
接受兩個參數,分別是str1和str2,按照字典的順序進行比較,若是str1比str2大(即str1在str2後面)則返回1,相等返回0,這個函數區分大小寫。
strcasecmp()用法相同,在strcmp()的基礎上增長再也不區分大小寫。
strnatcmp()函數在strcasecmp()的基礎上增長按照天然順序比較,因此這個函數是不去分大小寫,且按照人們的習慣進行排序的。
使用strlen()函數測試字符串的長度
這個函數能夠用來測試數組的長度,也能夠用來測試字符串的長度函數

4.使用字符串函數匹配和替換字符串

判別是否有特定字符串,並獲得字符串的位置,還能夠該字符串進行替換
4.1在字符串中查找字符串:strstr()、strchr()、strrchr()、stristr()
上面幾個函數的做用是:在一個字符串中查找另外一個字符串,php中strchr和strstr是徹底同樣的。
strstr()函數原型
string strstr(string str1,string needle);
接受兩個參數,第一個是目標字符串,第二個是要查找的關鍵字。
返回第一個匹配的關鍵字,若是不存在就返回false.
該函數是區分大小寫的,若是向不區分大小寫,可使用stristr()
strrchr用法相同,只不過會返回最後一個匹配的關鍵字。
4.2查找字符串的位置:strpos(),strrpos()
strpos的做用也是用來子一個字符串中查找關鍵字,可是卻不是返回關鍵字,而是返回關鍵字開始的位置。函數原型以下:
int strpos(strinig haystack, string needle, int[offset]);
第一個參數是要被查找的字符串,第二個是關鍵字。第三個是可選的參數,表示從字符串的哪個位置開始查找。
strrpos()用法相同,只不過返回的是最後一個匹配的位置。
4.3替換字符串:str_replace()、substr_replace()
這兩個字符串的做用很大,能夠將查找的字符串進行替換。
mixed str_replace(mixed needle, mixed new_needle, mixed haystack [, int & count]);
參數分別爲:須要查找的關鍵字,用於替換的關鍵字,字符串操做對象,一個可選的操做次數
substr_replace()的做用是用關鍵字將字符串的指定位置給替換掉。
string substr_replace(string string ,string replacement, int start, int[length])
接受的參數爲:字符串操做對象,須要替換的關鍵字,開始替換的位置和一個可選的參數爲從開始到結束的長度。
4.4用正則表達式查找字符串:ereg()、eregi()
此函數是用正則表達式來查找字符串中查找,看看有沒有匹配,函數原型爲:
int ereg(string pattern, string search, array[matches]);
第一個參數是正則表達式,第二個是字符串操做對象,可選的第三個是用來保存保存匹配的字符串,由於常常會有好幾個匹配。
eregi()函數跟上面是同樣的,只是再也不區分大小寫。
4.5用正則表示達替換字符串
使用函數str_replace()函數
4.6使用正則表達式分割字符串
這個也是比較使用的功能,使用的是split()函數
array split(string pattern, string search[, int max]);
返回的結果是一個數組集合,第一個參數是正則表達式,第二個是字符串,第三個可選的是進入數組的個數。測試

相關文章
相關標籤/搜索