PHP基礎02---字串
字串型別
定義:
引號方式:
比較適合定義那些比較短(不超過一行)或沒有結構要求的字串。
$s1 = 'abc';
$s2 = "abc";
//單引號與雙引號的定義方法一樣。
結構化定義:
如果有結構要求,或者內容超過一行,可用下面兩種方式
1.nowdoc字串:沒有單引號的單引號字串
/* $str= <<< '邊界符'
字串內容
邊界符;*/
$str1 = <<< 'EOD'
abc
EOD;
//EOD所在位置寫什麼都行
2.heredoc字串:沒有雙引號的雙引號字串
$str= <<< 邊界符 字串內容 邊界符; $str2 = <<< EOD abc EOD; //EOD所在位置後面什麼都可
結構化定義字串的時候,原封不動的儲存
但是多餘的空格以及換行可能會被替換成一個空格
結構化定義字串變數的規則:
- 邊界符:
1.1 上邊界符後面什麼內容分都不能有(空格也不行
1.2 下邊界符必須頂格
1.3 下邊界符同樣後面只能跟分號,不能跟任何內容。 - 結構化定義字串的內部(邊界符之間)的所有內容都是字串本身。
<?php header('Content-type:text/html;charset=utf-8'); $str3 = 'aaa $s1'; $str4 = <<< EOD //這是啥 <script> alert('$str3');//js彈出字串必須要有引號 </script> EOD; echo $str4; //其中<script>是彈出內容
轉義:
在計算機通用協議中,有一些特定方式定義的字母,系統會特定處理:通常這種方式都是使用反斜槓+字母(單詞)的特性:
php在識別轉義字元的時候,也是使用同樣的模式:\ + 字母(單詞)
對於\'、\"、不作過多解釋。
- \r 代表回車(理論上是回到當前行的位置
- \n 代表新的一行
- \t 類似tab鍵,輸出四個空格。
- \$ 輸出$符號。
單引號與雙引號的區別:視情況而定(最好用雙引號
- 單引號只能夠識別:\',但雙引號中不能。
<?php
$s1 = '\'';
$s2 = "\'";
/*
輸出為
'
\'
*/
- 雙引號中因為能識別$符號,所以雙引號中可以解析變數
<?php
$a = 'orz';
$s1 = 'abcd $a';
$s2 = "abcd $a";
$s3 = "abcd $ab";//這樣會報錯,但是還會輸出錯誤前面的部分
echo $s1,'<br/>',$s2;
/*
輸出為
abcd $a
abcd orz
*/
雙引號中變數識別規則:
<1 變數本身系統能夠與後面的內容區分:應該保證變數的獨立性,不要讓系統難以區分,即不要像\(s3一樣寫成\)ab;
<2 最好給變數加上{},像這樣 \(4 = "abcd {\)a}b";
長度問題:
-
基本函式strlen():得到字串的長度(位元組為單位
注意中文在utf-8字符集下佔3個位元組。
-
多位元組字串長度問題:包含中文的長度
-
多位元組字串擴充套件模組:mbstring擴充套件(mb:Multi Bytes
3.1 首先載入php的mbstring擴充套件(在php.ini中找mbstring,去掉註釋。
3.2 可以使用mb_strlen()(mbstring擴充套件針對的是一些關於字元統計:strlen只針對ASCII,mb_strlen會針對不同的字符集
字串函式:
可參照此處
用的時候百度就行(建議看看上面的超連線,看看有啥東西,用的時候能有個印象
支援中文基本都是mb_為字首,安全擷取。
----出處丟失。
1.轉換函式:
-
1implode(連線方式,陣列):將陣列中的元素按照某個規則連線成一個字串
-
2 explode(分割字元,目標字串):將字串按照某個格式分割,變成陣列
-
3 str_split(字串,字元長度):按照規定長度拆分字串得到陣列
2.擷取函式:
-
1 trim(字串[,指定字元]):本身預設是用來出去兩邊的空字元(中間的不可去除),也可去掉兩端指定的字元
-
2 ltrim():用法同trim,就是指定去掉左邊的(可以按照lefttrim來理解,沒有leftrim這個函式!
-
3 rtrim():用法同trim,指定去掉右邊的(可按照righttrim來理解,沒有rtrim這個函式!
3.擷取函式:
-
1substr(字串,起始位置[,長度]):從指定位置開始擷取字串,可擷取指定的長度(不指定的話就預設到最後;別忘記字串起始從0開始。
-
2strstr(字串,匹配字元):從第一個匹配字元開始,擷取到最後(可以用來取檔案字尾名
4.大小寫轉換函式:
-
1 strtolower(字串):全部小寫
-
2 strtoupper(字串):全部大寫
-
3 ucfirst(字串):首字母大寫(需要考慮空格,空格的大寫還是空格
5.查詢函式:
-
1 strpos(字串,字元(串)):判斷字元在目標字串中首次出現的位置(不能判斷中文字元(需要轉utf-8);注意下標從0開始;區分大小寫
-
2strrpos(字串,字元(串)):判斷字元在目標字串中最後出現的位置(不能判斷中文字元(需要轉utf-8);;區分大小寫
-
3 stripos():用法同strpos,這個不區分大小寫
-
4 strripos():用法同strrpos,這個不區分大小寫
6.替換函式:
6. 1**str_replace(目標,想要的,字串)**:將目標字串中的目標替換成想要的。
7.格式化函式:
7. 1**printf() / sprintf()**:格式化輸出資料.(同c語言中的輸出,注意格式的使用.
8. 其他:
-
1str_repeat(字串,N):重複某個字串N次
-
2str_shuffle(字串):隨機打亂字串。