標籤:image 過濾字元 賦值 執行 實體 第一個 效率 trim 忽略
1. 字串類型特點
1)因為PHP是弱類型語言,所以一般其他資料類型的變數也可以被字串相關函數進行處理。
例如:
Substr:字串截取函數
Substr(“要處理的字串”,起始值,截取個數)
如果是整形,因為PHP是弱類型語言,所以會自動類型轉換,被轉換為字串類型
2)字串可以將其視為數組
如下:
需要注意的是,雖然字串被視為數組,但是它不是真的數組
如下:使用數組相關函數進行處理的時候,並不能得到正確的結果
因為字串雖然被視為數組,但是並不是真的數組,所以上面的數組函數無效,如果要測量字串的長度,還是得使用字串相關函數。
為了區分字串和數組,可以使用(大括弧)花括弧“{}”,這樣簡潔明了
3)如果給字串裡面的某一個值賦值,字串值會被改變,字串長度不變
如果是賦值一個字串給另一個字串的某一個字元,那麼也只會有第一個字元被賦值進去
4)關於單引號和雙引號
單引號:不會解析變數
雙引號:會解析變數
如果是雙引號裡面的變數,為了簡潔明了,最好用一對花括“{}”弧將變數括起來。
如下:
雙引號裡面除了可以解析變數,還可以解析數組和對象
2.字串相關函數
1)字串輸出相關函數
echo(),print(),die(),printf(),sprint()
echo:用於輸出一個或者多個字串,注意echo可以輸出多個字串,中間用逗號分隔
如果有多個參數輸出的話,使用逗號的效率比點高
echo嚴格的來講,不是函數,事實上它是一個語言結構。
所謂語言結構,就是關鍵字。語言結構的執行效率要比函數高,因為函數執行的時候最終也會被轉換為語言結構。
Print():功能和echo基本一模一樣,區別就是print()是一個函數,而echo是一個語言結構,所以print的執行效率沒有echo高,還有一點,print()有傳回值,成功返回1,失敗返回0
Die()
Die()函數就是exit()函數的一個別名函數,功能和exit()是一模一樣。如果往該函數裡面傳遞一個字串,則在退出指令碼時會顯示該提示資訊
Printf(),列印,輸出
這個很眼熟,在C語言裡面見過,該語句也是直接從C語言直接借鑒過來的。
Sprintf():和printf的功能一模一樣,只不過不輸出,而是通過傳回值的形式將值返回
2)常用的字串格式化函數
所謂字串格式化,就是指將字串格式為你所需要的格式。
去除空格函數
Ltrim():去除左邊空格
Rtrim():去除右邊空格
Trim():去除兩邊的空格,注意
該函數在使用者提交表單的時候用得最多,比如使用者註冊帳號不小心多按了空格,如果不去除,下一次無論怎樣都不能登入。
這套函數不會對原來的字串進行改變,而是以傳回值得形式返回處理結果。
Trim()這套函數可以自己定義要去除哪些字元。例如0..9代表過濾數字,A..Z過濾大寫字母 a..z過濾小寫字母 點“ . ” 代表就是過濾字串裡面的 點“ . ”
除此之外,trim還支援自訂過濾範圍
3)字串填充函數
Str_pad(要填補的字串,指定長度,填充字元,方向)
方向預設支援3個:STR_PAD_LEFT,STR_PAD_RIGHT,STR_PAD_BOTH
不會改變原來數組的長度
4)字串大小寫轉換
PHP裡面提供4中字串大小寫轉換函式
Strtoupper():全部轉大寫
Strtolower():全部轉小寫
Ucfirst():字串中的第一個單詞的首字母轉換為大寫uc(upper case) 大小寫字母)的簡寫
Ucwords():每個單詞的首字母轉換為大寫
5)和HTML標籤相關的字串格式化函數
nl2br(字串名字)函數:
該函數可以將\n轉換為br,很多編程人員由於以前是寫C的,C語言裡面\n是換行,所以為了迎合他們的習慣,專門有一個這個函數將\n轉換為br
Htmlspecialchars():將預定義字元(主要就是指HTML標籤)轉換為HTML實體
< 轉換為 <
> 轉換為 >
可以讓代碼直接輸出,而不讓瀏覽器解釋,用於防止別人提交的html代碼攻擊。
還有一個strip_tags(要處理的字串,要保留的標籤):直接可以刪除字串裡面的HTML標籤
strip_tags(要處理的字串,要保留的標籤)
其他相關函數
Strrev():將字串裡面的字元全部翻轉
Number_format():標準貨幣格式函數
Number_format($num,可以選擇保留多少位小數)
Number_format($num,可以選擇保留多少位小數,小數位的分隔字元,整數位的分隔字元)
Md5()函數:將一個字串進行md5加密處理,預設返回一個32位的十六進位字串
6)字串比較函數
在PHP裡面可以通過(==,<,>)來對字串進行比較
除了比較子用來比較字串以外,PHP中還提供了一套字串比較函數用於字串比較。
Strcmp(str1,str2):和C語言裡面是一樣
Strcasecmp(str1,str2):忽略字串大小寫進行比較
按照自然排序進行字串比較
“4” “33”
Strnatcmp()
字串的分割
正則:
Preg_split(m,n)m代表以什麼進行分割的Regex,n表示被分割的字串名
Explode(分隔字元,字串變數名)將字串分割成數組
Implode():將一個數組合并成一個字串
Implode(串連符號,數組)
php字串處理