官术网_书友最值得收藏!

3.1 轉義和還原字符串

PHP中有許多字符屬于關鍵字符,這些字符都有特定的含義,如果需要在字符串中將這些關鍵字符當作普通字符使用,就需要對這些字符進行轉義。同時,輸出結果時經常需要對輸出的格式進行控制,這時就需要使用轉義字符控制輸出格式。

3.1.1 轉義

在PHP中使用反斜線“\”對需要轉義的字符進行轉義,而如果對非轉義字符使用“\”,那么“\”會被一起輸出。PHP中常用的轉義字符見表3-1。

表3-1 PHP中常用的轉義字符

082-i

注意:“\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所示。

3d1

圖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所示。

3d2

圖3-2 轉義和還原指定字符

主站蜘蛛池模板: 广德县| 新源县| 湄潭县| 巫溪县| 桑植县| 思茅市| 临沧市| 呼图壁县| 武隆县| 堆龙德庆县| 望谟县| 鹿邑县| 繁峙县| 桂林市| 丹寨县| 仁布县| 阿鲁科尔沁旗| 铜梁县| 内黄县| 桐梓县| 南木林县| 泾川县| 白山市| 三原县| 长海县| 成安县| 凤凰县| 永定县| 昔阳县| 墨竹工卡县| 华容县| 中西区| 绥江县| 镇坪县| 连云港市| 浮梁县| 密山市| 宜城市| 遵义市| 湄潭县| 南平市|