- PHP編程基礎與實踐教程
- 干練 毛紅霞
- 968字
- 2019-11-29 15:51:50
3.1 轉義和還原字符串
PHP中有許多字符屬于關鍵字符,這些字符都有特定的含義,如果需要在字符串中將這些關鍵字符當作普通字符使用,就需要對這些字符進行轉義。同時,輸出結果時經常需要對輸出的格式進行控制,這時就需要使用轉義字符控制輸出格式。
3.1.1 轉義
在PHP中使用反斜線“\”對需要轉義的字符進行轉義,而如果對非轉義字符使用“\”,那么“\”會被一起輸出。PHP中常用的轉義字符見表3-1。
表3-1 PHP中常用的轉義字符

注意:“\n”和“\r”在Windows操作系統(tǒng)中沒有太大區(qū)別。而在Linux操作系統(tǒng)中,“\n”表示換到下一行,卻不會回到行首;“\r”表示回到行首,但是仍留在本行。
3.1.2 自動轉義和還原
在實際應用中,由于無法十分確定用戶輸入的數(shù)據內容,也就無法對用戶輸入的數(shù)據逐一地進行手工轉義,這時就需要對字符串數(shù)據進行自動轉義。
在PHP中,可以使用addslashes()函數(shù)對字符串進行自動轉義,即自動在字符串中加入“\”,語法格式如下。
string addslashes(string $str);
addslashes()函數(shù)的返回值為加入“\”后的字符串。其中,$str為需要轉義的字符串對象。
在PHP中,可以使用stripslashes()函數(shù)將使用addslashes()函數(shù)轉義后的字符串進行還原,語法格式如下。
string stripslashes(string $str);
stripslashes()函數(shù)的返回值為還原后的字符串。其中,$str為需要還原的字符串對象。
【實例3-1(55_Addslashes_And_Stripslashes.php)】 對字符串“\\‘字符串’\\”進行轉義,然后將轉義后的字符串還原。實例代碼如下。
<?php //設置編碼格式,正確顯示中文 header("content-Type: text/html; charset=gb2312"); $str1 = "\\'字符串'\\"; //定義一個字符串型變量 echo'原字符串:'.$str1.'<br/>'; //顯示結果 $str2 = addslashes($str1); //轉義字符串 echo'自動轉義后的字符串:'.$str2.'<br/>'; //顯示結果 $str3 = stripslashes ($str2); //還原轉義后的字符串 echo'還原后的字符串:'.$str3; //顯示結果 ?>
運行結果如圖3-1所示。

圖3-1 自動轉義和還原
說明:addslashes()函數(shù)會自動在單引號“'”、雙引號“"”、反斜線“\”和空字符“NULL”前加上反斜線“\”。
在PHP中,還可以使用addcslashes()函數(shù)對字符串中指定的字符進行自動轉義,即自動在指定的字符串中加入“\”,語法格式如下。
string addcslashes(string $str, string $charlist);
addcslashes()函數(shù)的返回值為加入“\”后的字符串。其中,$str為需要轉義的字符串對象;“$charlist”為需要轉義的指定字符。
在PHP中,可以使用stripcslashes()函數(shù)將使用addcslashes()函數(shù)轉義后的字符串進行還原,語法格式如下。
string stripcslashes(string $str);
stripcslashes()函數(shù)的返回值為還原后的字符串。其中,$str為需要還原的字符串對象。
【實例3-2(56_Addcslashes_And_Stripcslashes.php)】 對字符串“\\‘字符串’\\”中的“'”進行轉義,然后將轉義后的字符串還原。實例代碼如下。
<?php //設置編碼格式,正確顯示中文 header("content-Type: text/html; charset=gb2312"); $str1 = "\\'字符串'\\"; //定義一個字符串型變量 echo'原字符串:'.$str1.'<br/>'; //顯示結果 $str2 = addcslashes($str1, "'"); //轉義字符串 echo'自動轉義后的字符串:'.$str2.'<br/>'; //顯示結果 $str3 = stripcslashes ($str2); //還原轉義后的字符串 echo'還原后的字符串:'.$str3; //顯示結果 ?>
運行結果如圖3-2所示。

圖3-2 轉義和還原指定字符
- Visual Studio 2012 Cookbook
- 編程卓越之道(卷3):軟件工程化
- PostgreSQL Cookbook
- C語言程序設計
- Visual Basic程序設計上機實驗教程
- 快速入門與進階:Creo 4·0全實例精講
- Learning Splunk Web Framework
- 嵌入式Linux C語言程序設計基礎教程
- 關系數(shù)據庫與SQL Server 2012(第3版)
- 和孩子一起學編程:用Scratch玩Minecraft我的世界
- 軟技能2:軟件開發(fā)者職業(yè)生涯指南
- PHP程序設計經典300例
- Python程序設計
- SAP HANA Starter
- Perl 6 Deep Dive