PHP筆記 字串操作

2021-07-22 09:48:17 字數 2556 閱讀 3156

字串是指由零個或多個字元構成的乙個集合,這裡所說的字串主要包含以下幾種型別:

數字型別(1,2,3)、字母型別(a,b,c)、特殊字元(#,$,%)、不可見字元(\n,\r,\t)

單引號和雙引號:雙引號中的內容是經過php的語法分析器解析過的,任何變數在雙引號中都會被轉換成它的值

在進行sql查詢之前,所有字串都必須加單引號,防止注入漏洞和sql錯誤

字串連線使用 . 。無法實現大量字串連線,建議使用雙引號包含變數的方式

去除字串收尾空格和特殊字元: trim()

string trim(string str [, string charlist]);  

charlist: 可選,指定需要從字串中刪除哪些字元,預設可選值: \0,\t,\n,\x0b,\r,空格,也可自己提供

凡是在字串收尾出現在charlist中的字元都會去除

ltrim()去除左邊的,rtrim()去除右邊的

$str = "   dfdf dfdg  #";

$str1 = "# abc # ";

echo trim($str).'

'; // "dfdf dfdg #"

echo trim($str,' #').'

'; // "dfdf dfdg"

echo trim($str,'# ').'

'; // "dfdf dfdg"

echo trim($str1).'

'; // "# abc #"

echo trim($str1,'#').'

'; // " abc # "

echo trim($str1,'# ').'

'; // "abc"

echo trim($str1,' #').'

'; // "abc"

轉義、還原字串資料:

手動轉義、還原:自己手動新增、刪除 『\』

自動轉義:使用addslashes()和stripslashes()

$str = "asdf\"ghjkl\"qwe";

echo stripcslashes($str); //"asdf"ghjkl"qwe"

// addslashes($str)字串為 "asdf\\\"ghjkl\\\"qwe"

// 在所有的 \ 和 " 前面都新增乙個 \

echo addslashes($str); //"asdf\"ghjkl\"qwe"

echo stripcslashes($str); //"asdf"ghjkl"qwe"

addcslashes()和stripcslashes()對指定範圍內的字串進行轉義、還原

string addcslashes(string str, string charlist);

string stripcslashes(string str, string charlist);

在charlist中,包含的\n、\r等字元,將以c語言風格轉換,而其他非字母數字且ascii碼低於32或高於126的字元均轉換成八進位制表示。

獲取字串長度:strlen(); 漢子佔兩個字元    $len = strlen($str);

擷取字串:php預定義函式substr(),特別中文擷取亂碼的問題

string substr(string str, int start [, int length]);

start: 指定開始擷取的位置,如果w為負數,則從字串的末尾開始擷取

length: 可選,指定擷取字元個數,如果為負,表示擷取到倒數第length個字元

start、length全為負數沒有結果

$str = "asdfghjkl";

echo substr($str,1,5).'

'; //sdfgh

echo substr($str,1,-5).'

'; //sdf

echo substr($str,-3,5).'

'; //jkl 到字串結尾提前結束了

比較字串:

按位元組進行字串比較的方法有兩種:strcmp()和strcasecmp()(不區分大小寫),函式返回小於0、等於0、大於0三種結果

按自然排序法進行字串的比較:strnatcmp(), 比較字串中的數字部分 strnatcasecmp()不區分大小寫,有意思嗎?數字還有大小寫?

echo strnatcmp("qwe1023sf","wrer34"); // -1

// 1023中第乙個數字是1 比34中3小

從指定字串位置開始比較:  int strncmp($str1,$str2,int len); len指定每個字串參與比較的字元數量

字串檢索:

php學習筆記 字串操作

1.除去字串前後的空格 1 trim 除去字串前後的空格 2 ltrim 除去字串左邊的空格 3 rtrim 除去字串右邊的空格 2.獲取字串長度 1 獲取英文本串長度 strlen 2 獲取中文字元長度 mb strlen eg mb strlen str,utf8 3.擷取字串 1 英文 sub...

php字串操作

一空格特殊字元 1 string trim string str string charlist 去除字串開始結尾位置的空格和特殊字元 如果沒有第二個引數只去除空格 2 string ltrim string str string charlist 去除字串開始位置的空格和特殊字元 3 string...

PHP 字串操作

可以使用trim 函式去除字串開始位置和結束位置的空格,並把結果字串返回。預設情況下,去除 n r t xob 0和空格。也可以傳入第二個引數提供要過濾的特殊字元。ltrim 只從字串開始處去除,rtrim 只從字串結束處去除。nl2br 函式將會把字串中的換行符替換為 標記。當字串中含有一些有問題...