目錄
- 字符串簡介
- 單引號和雙引號的區別
- 字符串的連接符
- 去除字符串首尾空格和特殊字符
- 1.trim()函數
- 2.Itrim()函數
- 3.rtrim()函數
- 轉義、還原字符串數據
- 1.手動轉義、還原字符串數據
- 2.自動轉義、還原字符串數據
字符串簡介
字符串是指由零個或多個字符構成的一個集合,這里所說的字符主要包含以下幾種類型:
- 數字類型,如1、2、3等。
- 字母類型,如a、b、c、d等。
- 特殊字符,如#、$、%、^、等。
- 不可見字符,如\n(換行符)、\r(回車符)、\t(Tab字符)等。
其中,不可見字符是比較特殊的一組字符,它用來控制字符串格式化輸出,在瀏覽器上不可見,只能看到字符串輸出的結果,如下:
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
html xmlns="http://www.w3.org/1999/xhtml">
head>
meta http-equiv="Content-Type" content="text/html; charset=gb2312"
/>
title>PHP語言基礎/title>
/head>
body>
?php
header("Content-Type:text/html; charset=gb2312");
echo "pear\rapple\nbanan\tfruit";
?>
/body>
/html>
運行結果: pear apple banan fruit
發現并沒有在瀏覽器上進行換行、回車之類的。 點擊網頁查看源代碼:

單引號和雙引號的區別
字符串通常以串的整體作為操作對象,一般用雙引號或者單引號標識一個字符串。單引號和雙引號在使用上有一定區別。對于定義的普通字符串看不出兩者之間的區別。而通過對變量的處理,即可輕松地理解兩者之間的區別。
雙引號中的內容是經過PHP的語法分析器解析過的,任何變量在雙引號中都會被轉換為它的值進行輸出顯示;而單引號的內容是“所見即所得”的,無論有無變量,都被當作普通字符串進行原樣輸出。
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
html xmlns="http://www.w3.org/1999/xhtml">
head>
meta http-equiv="Content-Type" content="text/html; charset=gb2312"
/>
title>PHP語言基礎/title>
/head>
body>
?php
header("Content-Type:text/html; charset=gb2312");
$str="PHP";
$str1="$str";
$str2='$str';
echo $str1."br>";
echo $str2;
?>
/body>
/html>
運行結果:
PHP
$str
技巧:單引號串和雙引號串在PHP中的處理是不相同的。雙引號串中的內容可以被解釋并替換,而單引號串中的內容則只能被作為普通字符進行處理。
注意:在進行SQL查詢之前,所有字符串都必須加單引號,以避免可能的注入漏洞和SQL錯誤。
字符串的連接符
半角句號“.”是字符串連接符,可以把兩個或兩個以上的字符串連接成一個字符串。 應用字符串連接符號無法實現大量簡單字符串的連接,PHP允許程序員在雙引號中直接包含字符串變量,當echo語句后面使用的是雙引號(”)時,可以使用下面的格式來達到同樣的效果。
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
html xmlns="http://www.w3.org/1999/xhtml">
head>
meta http-equiv="Content-Type" content="text/html; charset=gb2312"
/>
title>PHP語言基礎/title>
/head>
body>
?php
header("Content-Type:text/html; charset=gb2312");
$str1="Java";
$str2="PHP";
echo "$str1,$str2,C++";
?>
/body>
/html>
運行結果:
Java,PHP,C++
去除字符串首尾空格和特殊字符
用戶在輸入數據時,經常會在無意中輸入多余的空格,在有些情況下,字符串中不允許出現空格和特殊字符,此時就需要去除字符串中的空格和特殊字符。在PHP中提供了trim()函數去除字符串左右兩邊的空格和特殊字符、ltrim()函數去除字符串左邊的空格和特殊字符、rtrim()函數去除字符串中右邊的空格和特殊字符。
1.trim()函數
trim()函數用于去除字符串開始位置以及結束位置的空格,并返回去掉空格后的字符串。
語法格式如下:
string trim(string str [,string charlist]);
trim()函數的參數str是要操作的字符串對象,參數charlist為可選參數,指定需要從指定的字符串中刪除哪些字符,如果不設置該參數,則所有的可選字符都將被刪除。
trim()函數的參數charlist的可選值如下表所示。

注意:除了以上默認的過濾字符列表外,也可以在charlist參數中提供要過濾的特殊字符。
使用trim()函數去除字符串左右兩邊的空格及特殊字符“\r\r(: :)”:
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
html xmlns="http://www.w3.org/1999/xhtml">
head>
meta http-equiv="Content-Type" content="text/html; charset=gb2312"
/>
title>PHP語言基礎/title>
/head>
body>
?php
header("Content-Type:text/html; charset=gb2312");
$str="\r\r(:@_@ 學習PHP @_@:) ";
echo trim($str);//去除字符串左右兩邊的空格
echo "br>";
echo trim($str,"\r\r(: :)");//去除字符串左右兩邊的特殊字符\r\r(::)
?>
/body>
/html>
運行結果:
(:@@ 學習PHP @@:)
@@ 學習PHP @@
2.Itrim()函數
Itrim()函數用于去除字符串左邊的空格或者指定字符串。
語法格式如下:
string ltrim( string str [,string charlist]);
使用Itrim()函數去除字符串左邊的空格及特殊字符“(:@_@”:
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
html xmlns="http://www.w3.org/1999/xhtml">
head>
meta http-equiv="Content-Type" content="text/html; charset=gb2312"
/>
title>PHP語言基礎/title>
/head>
body>
?php
header("Content-Type:text/html; charset=gb2312");
$str=" (:@_@ 學習PHP @_@:) ";
echo trim($str);//去除字符串左邊的空格
echo "br>";
echo ltrim($str," (:@_@");//去除字符串左邊的特殊字符 (:@_@
?>
/body>
/html>
運行結果:
(:@@ 學習PHP @@:)
學習PHP @_@:)
3.rtrim()函數
rtrim()函數用于去除字符串右邊的空格。
語法格式如下:
String rtrim(string str [,string charlist]);
使用rtrim()函數去除字符串右邊的空格及特殊字符“@_@:)”:
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
html xmlns="http://www.w3.org/1999/xhtml">
head>
meta http-equiv="Content-Type" content="text/html; charset=gb2312"
/>
title>PHP語言基礎/title>
/head>
body>
?php
header("Content-Type:text/html; charset=gb2312");
$str=" (:@_@ 學習PHP @_@:) ";
echo trim($str);//去除字符串右邊的空格
echo "br>";
echo rtrim($str," @_@:)");//去除字符串右邊的特殊字符 @_@:)
?>
/body>
/html>
運行結果:
(:@@ 學習PHP @@:)
(:@_@ 學習PHP
轉義、還原字符串數據
字符串轉義、還原的方法有兩種:一種是手動轉義、還原字符串數據,另一種是自動轉義、還原字符串數據。下面分別對這兩種方法進行詳細講解。
1.手動轉義、還原字符串數據
字符串可以用單引號(‘)、雙引號(“”)、定界符({})3種方法定義。而指定一個簡單字符串的最簡單的方法是用單引號(‘)括起來。當使用字符串時,很可能在該串中存在這幾種符號與PHP腳本混淆的字符,因此必須要做轉義語句。這就要在它的前面使用轉義符號“\”。
“\”是一個轉義符,緊跟在“\”后面的第一個字符將變得沒有意義或有特殊意義。如‘是字符串的定界符,寫為\'時就失去了定界符的意義,變為了普通的單引號‘。讀者可以通過echo '‘';輸出一個單引號‘,同時轉義字符“”也不會顯示。
技巧1:如果要在字符串中表示單引號,則需要用反斜線()進行轉義。例如,要表示字符串“I‘m”,則需要寫成“I'm”。
技巧2 :對于簡單的字符串建議采用手動方法進行字符串轉義,而對于數據量較大的字符串,建議采用自動轉義函數實現字符串的轉義。
說明:手動轉義字符串可應用addcslashes()函數進行字符串還原,其具體的實現方法將在下面進行介紹。
使用轉義字符“\”對字符串進行轉義:
?php
header("Content-Type:text/html; charset=gb2312");
echo 'php,\'學習PHP'';
?>
運行結果:
php,'學習PHP'
2.自動轉義、還原字符串數據
自動轉義、還原字符串數據可以應用PHP提供的addslashes()函數和stripslashes()函數實現。
1.addslashes()函數
addslashes()函數用來為字符串str加入斜線“\”。
語法格式如下:
string addslashes (string str)
2.stripslashes()函數
stripslashes()函數用來將使用addslashes()函數轉義后的字符串str返回原樣。
string stripslashes(string str);
使用自動轉義字符addslashes()函數對字符串進行轉義,然后使用stripslashes()函數進行還原:
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
html xmlns="http://www.w3.org/1999/xhtml">
head>
meta http-equiv="Content-Type" content="text/html; charset=gb2312"
/>
title>PHP語言基礎/title>
/head>
body>
?php
header("Content-Type:text/html; charset=gb2312");
$str="php,'學習PHP'";
echo $str."br>";
$a=addslashes($str); //對字符串中的特殊字符進行轉義
echo $a."br>";
$b=stripslashes($a);//對轉義字符進行還原
echo $b;
?>
/body>
/html>
運行結果:
php,'學習PHP'
php,\'學習PHP'
php,'學習PHP'
技巧:所有數據在插入數據庫之前,有必要應用addslashes()函數進行字符串轉義,以免特殊字符未經轉義在插入數據庫時出現錯誤。另外,對于使用addslashes()函數實現的自動轉義字符串可以使用stripcslashes()函數進行還原,但數據在插入數據庫之前必須再次進行轉義。
以上兩個函數實現了對指定字符串進行自動轉義和還原。除了上面介紹的方法外,還可以對要轉義、還原的字符串進行一定范圍的限制,通過使用addcslashes()函數和stripcslashes()函數實現對指定范圍內的字符串進行自動轉義、還原。下面分別對兩個函數進行詳細介紹。
3.addcslashes()函數
實現轉義字符串中的字符,即在指定的字符charlist前加上反斜線。
語法格式如下:
string addcslashes (string str, string charlist)
參數說明:
參數str為將要被操作的字符串,參數charlist指定在字符串中的哪些字符前加上反斜線“\”,如果參數charlist中包含\n、\r等字
符,將以C語言風格轉換,而其他非字母數字且ASCII碼低于32以及高于126的字符均轉換成八進制表示。
注意:在定義參數charlist的范圍時,需要明確在開始和結束的范圍內的字符。
4.stripcslashes()函數
stripcslashes()函數用來將應用addcslashes()函數轉義的字符串str還原。
語法格式如下:
string stripcslashes (string str)
使用addcslashes()函數對字符串進行轉義,使用stripcslashes()函數對轉義的字符串進行還原。
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
html xmlns="http://www.w3.org/1999/xhtml">
head>
meta http-equiv="Content-Type" content="text/html; charset=gb2312"
/>
title>PHP語言基礎/title>
/head>
body>
?php
header("Content-Type:text/html; charset=gb2312");
$str="學習PHP";
echo $str."br>";
$b=addcslashes($str,"學習PHP");
echo $b."br>";
$c=stripcslashes($b);
echo $c;
?>
/body>
/html>
運行結果:
學習PHP
\321\247\317\260\P\H\P
學習PHP
技巧:在緩存文件中,一般對緩存數據的值采用addcslashes()函數進行指定范圍的轉義。
以上就是PHP入門學習之字符串操作的詳細內容,更多關于PHP字符串操作的資料請關注腳本之家其它相關文章!
您可能感興趣的文章:- php生成隨機數/生成隨機字符串的方法小結【5種方法】
- PHP中多字節字符串操作實例詳解
- PHP字符串中提取文件名的實例方法
- php中創建字符串的變量實例講解
- 聊聊PHP中刪除字符串的逗號和尾部斜杠的方法