1. 程式人生 > 實用技巧 >PHP基礎02---字串

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 上邊界符後面什麼內容分都不能有(空格也不行
    1.2 下邊界符必須頂格
    1.3 下邊界符同樣後面只能跟分號,不能跟任何內容。
  2. 結構化定義字串的內部(邊界符之間)的所有內容都是字串本身。
<?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鍵,輸出四個空格。
  • \$ 輸出$符號。

單引號與雙引號的區別:視情況而定(最好用雙引號

  1. 單引號只能夠識別:\',但雙引號中不能。
<?php
    $s1 = '\'';
	$s2 = "\'";
/*
輸出為
'
\'
*/

  1. 雙引號中因為能識別$符號,所以雙引號中可以解析變數
<?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";

長度問題:

  1. 基本函式strlen():得到字串的長度(位元組為單位

    注意中文在utf-8字符集下佔3個位元組。

  2. 多位元組字串長度問題:包含中文的長度

  3. 多位元組字串擴充套件模組:mbstring擴充套件(mb:Multi Bytes

3.1 首先載入php的mbstring擴充套件(在php.ini中找mbstring,去掉註釋。

3.2 可以使用mb_strlen()(mbstring擴充套件針對的是一些關於字元統計:strlen只針對ASCII,mb_strlen會針對不同的字符集

字串函式:

可參照此處

用的時候百度就行(建議看看上面的超連線,看看有啥東西,用的時候能有個印象

支援中文基本都是mb_為字首,安全擷取。

​ ----出處丟失。

1.轉換函式:
  1. 1implode(連線方式,陣列):將陣列中的元素按照某個規則連線成一個字串

  2. 2 explode(分割字元,目標字串):將字串按照某個格式分割,變成陣列

  3. 3 str_split(字串,字元長度):按照規定長度拆分字串得到陣列

2.擷取函式:
  1. 1 trim(字串[,指定字元]):本身預設是用來出去兩邊的空字元(中間的不可去除),也可去掉兩端指定的字元

  2. 2 ltrim():用法同trim,就是指定去掉左邊的(可以按照lefttrim來理解,沒有leftrim這個函式!

  3. 3 rtrim():用法同trim,指定去掉右邊的(可按照righttrim來理解,沒有rtrim這個函式!

3.擷取函式:
  1. 1substr(字串,起始位置[,長度]):從指定位置開始擷取字串,可擷取指定的長度(不指定的話就預設到最後;別忘記字串起始從0開始。

  2. 2strstr(字串,匹配字元):從第一個匹配字元開始,擷取到最後(可以用來取檔案字尾名

4.大小寫轉換函式:
  1. 1 strtolower(字串):全部小寫

  2. 2 strtoupper(字串):全部大寫

  3. 3 ucfirst(字串):首字母大寫(需要考慮空格,空格的大寫還是空格

5.查詢函式:
  1. 1 strpos(字串,字元(串)):判斷字元在目標字串中首次出現的位置(不能判斷中文字元(需要轉utf-8);注意下標從0開始;區分大小寫

  2. 2strrpos(字串,字元(串)):判斷字元在目標字串中最後出現的位置(不能判斷中文字元(需要轉utf-8);;區分大小寫

  3. 3 stripos():用法同strpos,這個不區分大小寫

  4. 4 strripos():用法同strrpos,這個不區分大小寫

6.替換函式:
  6. 1**str_replace(目標,想要的,字串)**:將目標字串中的目標替換成想要的。
7.格式化函式:
  7. 1**printf() / sprintf()**:格式化輸出資料.(同c語言中的輸出,注意格式的使用.
8. 其他:
  1. 1str_repeat(字串,N):重複某個字串N次

  2. 2str_shuffle(字串):隨機打亂字串。