php基礎入門三(字符串的操作)

##php基礎入門三

###字符串

1 字符串定義

 ①單引號

 ②雙引號

 ③heredoc語法結構

 eg:語法定義

 單引號定義的字符串:KaTeX parse error: Expected 'EOF', got '&' at position 28: …lo world';<br> &̲emsp;雙引號定義的字符串:hello = “hello world”;
 heredoc語法結構定義的字符串:

 $hello = <<<TAG

 hello world

 TAG;

 注意事項:

 PHP中允許雙引號中的字符串直接包含變量,會被解析。

 而單引號串中的內容總被認爲是普通字符,不回被解析。

 在heredoc語法中“TAG”是自定義的可以隨便起。

$str="hello";
echo "str is $str"; //運行結果: str is hello
echo "<br>";
echo 'str is $str'; //運行結果: str is $str 

2 字符串操作

1>字符串連接

在php中連接兩個字符串用“.”連接

$str1='hello';
$str2=' php';
$str = $str1.$str2;
echo $str;

2>去掉字符串中空格

 PHP中有三個函數可以去掉字符串中的空格

 ①trim去除一個字符串兩端空格。

 ②rtrim是去除一個字符串右部空格。

 ③ltrim是去除一個字符串左部空格。

echo trim("&emsp;空格   ")."<br>";
echo rtrim("   空格   ")."<br>";
echo ltrim("   空格   ")."<br>";//打開瀏覽器開發者工具就可以看到效果

3>獲取字符串長度

php中strlen()獲取字符串長度。

$str = "你好嗎,hello!";
echo mb_strlen($str,"UTF8");//結果:10

特別注意:

 但是strlen使用的對象是英文字符串,一旦字符串中出現漢字就無法計算字符串的長度,當字符中有漢字時則用mb_strlen()函數獲取字符串中中文長度。

4>字符串的截取

 字符串的截取分爲英文、中文字符串的截取

 ①英文字符串截取substr()
 語法:substr(字符串變量,開始截取的位置,截取個數)

$str='i like banana';  //截取love這幾個字母
echo substr($str, 2, 4);

  ②中文字符串截取mb_substr()

 語法:mb_substr(字符串變量,開始截取的位置,截取個數, 網頁編碼)

$str='我愛你,中國';   //截取中國兩個字
echo mb_substr($str, 4, 2, 'utf8');

5>字符串查找

 查詢特定的字符串在大字符串中的位置(有一個字符串$str = ‘I hate php’;,怎麼樣找到其中的php在哪個位置呢?)。

 語法:strpos(要處理的字符串, 要定位的字符串, 定位的起始位置[可選])

 返回值:找到第一個字符的索引值並且返回

 ①英文字符串查找

$str = 'I hate php';
$pos = strpos($str, 'hate');
echo $pos;//結果顯示2

②中文字符串查找

$str="截取中文字符串";
$t1 = mb_strpos($str,'中',0,"utf8");
$t2 = mb_strpos($str,'串',0,"utf8");
echo $s = mb_substr($str,$t1,$t2-$t1+1,"utf8");//中文字符串

6>替換字符串

 替換函數str_replace()

 語法:str_replace(要查找的字符串, 要替換的字符串, 被搜索的字符串, 替換進行計數[可選])

$str = 'I hate PHP';
$replace = str_replace('hate', 'like', $str);
echo $replace;//I like PHP

7>格式化字符串

 sprintf() 函數把格式化的字符串寫入變量中。

%s %u %f
匹配字符串 匹配整數 匹配浮點

 語法:sprintf(格式, 要轉化的字符串)

 返回值:格式化好的字符串

$number = 2;
$str = "Shanghai";
$txt = sprintf("There are %u million cars in %s.",$number,$str);

$result = sprintf('%06.2f', $str);
echo $result;//結果顯示99.90

拓展:%06.2f意義
 % “起始字符”;

 0 是 “填空字元” ,表示如果位置空着就用0來填補;

 6 佔位元素(小數點也算一個佔位);

     99.90一共5個佔位,現在需要6個佔位,所以用“填空字元”在最前面99.90填滿;

 .2 小數點後面的浮點數的位數;

 =f “轉換字符” 結尾。

8>字符串的合併(針對數組合併成字符串)

 語法:implode(分隔符[可選], 數組)

 返回值:把數組元素組合爲一個字符串

$arr = array('I', 'hate',"php");
$result = implode(' ', $arr);
print_r($result);//I hate php

9>字符串的分割

 函數說明:explode(分隔符[可選], 字符串)

 返回值:函數返回由字符串組成的數組

$str = 'apple,banana';
$result = explode(',', $str);
print_r($result);//array('apple','banana')

10>字符串的轉義

 1、語法:addslashes()

 返回值:一個轉義後的字符串

 用途:addslashes() 函數返回在預定義字符之前添加反斜槓的字符串。

 2、語法:stripslashes()

 返回值:字符串

 用途:函數刪除由 addslashes() 函數添加的反斜槓。

 預定義字符是:

 █ 單引號(’)

 █ 雙引號(")

 █ 反斜槓(\)

 █ NULL

$str='Shanghai is the "biggest" city in China.';
$str1 = addslashes($str);
echo($str1);//Shanghai is the \"biggest\" city in China.
echo "<br>";   
echo stripslashes($str1);  //Shanghai is the "biggest\" city in China.

 3、語法:htmlspecialchars()

 返回值:返回被轉換的字符串。

 用途:函數把預定義的字符轉換爲 HTML 實體(把預定義的字符 “<” (小於)和 “>” (大於)轉換爲 HTML 實體)。

 4、語法:htmlspecialchars_decode()

 返回值:返回已轉換的字符串。

 用途:函數把預定義的 HTML 實體轉換爲字符。

 預定義的字符是:

 █ & (和號)成爲 &

 █ " (雙引號)成爲 "

 █ ’ (單引號)成爲 ’

 █ < (小於)成爲 <

 █ > (大於)成爲 >

$str = "This is some <b>bold</b> text.";
echo htmlspecialchars($str);//This is some <b>bold</b> text.
echo htmlspecialchars_decode($str);//This is some **bold** text.

######字符串的遍歷 獲取每個字符

$str="你好hello999.9";
for($i=0;$i<mb_strlen($str,"utf8");$i++){
    echo mb_substr($str,$i,1,"utf8")."---";
}
發佈了42 篇原創文章 · 獲贊 56 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章