我們知道字符串定義時會用到單引號、雙引號。
在這裏簡要說明一下單雙引號的區別:雙引號中的變量會被解析,單引號中的變量不會被解析,會原樣輸出。正式由於這個原因,單引號的執行速度要比雙引號快。
字符串函數可以分爲9大類:字符串長度函數、查找字符位置函數、字符串替換函數、提取子字符函數、分割/連接/反轉函數、去除/增加空格函數、html代碼/數據庫安全處理有關函數、比較字符函數、字符大小寫轉換函數。
下面逐一開始詳細介紹:
1 字符串長度函數 strlen()、mb_strlen()
strlen() //返回字節數,需要說明的是utf-8編碼,一個漢字佔三個字節;gbk編碼,一個漢字佔兩個字節
mb_strlen() //返回字符數
例:$str = '中國';
echo strlen($str); //6,返回的是字節數6
echo mb_strlen($str,'utf-8'); //2,返回的是字符數2,需要注意的是,mb_strlen需要傳兩個參數,第二個爲編碼方式
2 查找字符位置函數 strpos、stripos、strrpos
strpos stripos(返回第一次出現的位置) strrpos(返回最後一次出現的位置)
例:$str1 = 'abcde';
$str2 = 'c';
$res = strpos($str1,$str2);
if($res === false) echo '未找到';
3 字符串替換函數 str_replace、strtr
str_replace //將指定的字符串替換爲指定的字符串
strtr //替換一批字符串
例:$str = 'fuck,abc';
str_replace('fuck','f**k',$str); //f**k,abc
$str = '男人,女人,男孩,女孩';
strtr($str,array('男'=>'女','女'=>'男'));
4 截取字符串函數 substr(p1,p2,p3) //p1截取對象,p2開始位置,p3截取長度
$str = 'tomorrow is another day';
substr($str,0,3);
substr($str,0,-3); //從後往前開始截取
5 拆分字符串 explode,implode
例:$str = 'tech,linux,mysql';
$array = explode(',',$str);
implode(',',$array);
6 分割字符串 str_split
例:$str = 'abcdefabcdef';
str_split($str,3);
//第二個參數默認爲1
print_r(str_split($str)); //array([0]=>a [1]=>b [2]=>c [3]=>d)
7 空白處理函數 trim() ltrim() rtrim()
預定義字符包括:空格、回車、換行、垂直製表符、null
trim() //移除字符串兩側的空格或其他預定義字符
ltrim() //移除字符串左側的空格或其他預定義字符
rtrim() //移除字符串右側的空格或其他預定義字符
8 字符串轉義函數
addslashes() 、stripslashes()、get_magic_quotes_gpc()、htmlspecialchars()、htmlspecialchars_decode()、htmlentities()、html_entity_decode()
9 字符串比較函數 strcmp() strcasecmp()
strcmp($str1,$str2) //區分大小寫
strcasecmp($str1,$str2) //不區分大小寫
返回值說明:
0:相等
<0 :第一個字符串小於第二個字符串
>0:第一個字符串大雨第二個字符串
10 字符串轉換函數
strtolower($str) //將字符串轉換爲小寫
strtoupper($str) //將字符串轉換爲大寫
ucfirst($str) //首字符轉換爲大寫
ucwords($str) //每個單詞的首字符轉換爲大寫