addcslashes

(PHP 4, PHP 5, PHP 7, PHP 8)

addcslashes以 C 語言風格使用反斜線轉(zhuǎn)義字符串中的字符

說明

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

返回字符串,該字符串在屬于參數(shù) charlist 列表中的字符前都加上了反斜線。

參數(shù)

str

要轉(zhuǎn)義的字符。

charlist

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

當定義 charlist 參數(shù)中的字符序列時,需要確實知道介于自己設(shè)置的開始及結(jié)束范圍之內(nèi)的都是些什么字符。

<?php
echo addcslashes('foo[ ]''A..z');
// 輸出:\f\o\o\[ \]
// 所有大小寫字母均被轉(zhuǎn)義
// ... 但 [\]^_` 以及分隔符、換行符、回車符等也一并被轉(zhuǎn)義了。
?>
另外,如果設(shè)置范圍中的結(jié)束字符 ASCII 碼高于開始字符,則不會創(chuàng)建范圍,只是將開始字符、結(jié)束字符以及其間的字符逐個轉(zhuǎn)義??墒褂? ord() 函數(shù)獲取字符的 ASCII 碼值。
<?php
echo addcslashes("zoo['.']"'z..A');
// 輸出:\zoo['\.']
?>

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

返回值

返回轉(zhuǎn)義后的字符。

更新日志

版本 說明
5.2.5 The escape sequences \v and \f were added.

范例

charlist 參數(shù),如“\0..\37”,將轉(zhuǎn)義所有 ASCII 碼介于 0 和 31 之間的字符。

示例 #1 addcslashes() 例子

<?php
$escaped 
addcslashes($not_escaped"\0..\37!@\177..\377");
?>

參見