1. 程式人生 > 實用技巧 >addcslashes — 以 C 語言風格使用反斜線轉義字串中的字元

addcslashes — 以 C 語言風格使用反斜線轉義字串中的字元

addcslashes — 以 C 語言風格使用反斜線轉義字串中的字元

說明

addcslashes ( string $str , string $charlist ) : string

返回字串,該字串在屬於引數 charlist 列表中的字元前都加上了反斜線。

引數

str

要轉義的字元。

charlist

如果 charlist 中包含有 \n\r 等字元,將以 C 語言風格轉換,而其它非字母數字且 ASCII 碼低於 32 以及高於 126 的字元均轉換成使用八進位制表示。

當定義 charlist 引數中的字元序列時,需要確實知道介於自己設定的開始及結束範圍之內的都是些什麼字元。

<?php
echoaddcslashes('foo[]','A..z');
//輸出:\f\o\o\[\]
//所有大小寫字母均被轉義
//...但[\]^_`以及分隔符、換行符、回車符等也一併被轉義了。
?>
另外,如果設定範圍中的結束字元 ASCII 碼高於開始字元,則不會建立範圍,只是將開始字元、結束字元以及其間的字元逐個轉義。可使用 ord() 函式獲取字元的 ASCII 碼值。 <?php
echoaddcslashes("zoo['.']",'z..A');
//輸出:\zoo['\.']
?>

當選擇對字元 0,a,b,f,n,r,t 和 v 進行轉義時需要小心,它們將被轉換成 \0,\a,\b,\f,\n,\r,\t 和 \v。在 PHP 中,只有 \0(NULL),\r(回車符),\n(換行符)和 \t(製表符)是預定義的轉義序列, 而在 C 語言中,上述的所有轉換後的字元都是預定義的轉義序列。

返回值

返回轉義後的字元。