(PHP 4, PHP 5, PHP 7, PHP 8)
addcslashes — 以 C 語言風格使用反斜線轉(zhuǎn)義字符串中的字符
$str
, string $charlist
): string
返回字符串,該字符串在屬于參數(shù) charlist
列表中的字符前都加上了反斜線。
str
要轉(zhuǎn)義的字符。
charlist
如果 charlist
中包含有 \n
,\r
等字符,將以 C 語言風格轉(zhuǎn)換,而其它非字母數(shù)字且 ASCII 碼低于 32 以及高于 126
的字符均轉(zhuǎn)換成使用八進制表示。
當定義 charlist 參數(shù)中的字符序列時,需要確實知道介于自己設置的開始及結束范圍之內(nèi)的都是些什么字符。
<?php
echo addcslashes('foo[ ]', 'A..z');
// 輸出:\f\o\o\[ \]
// 所有大小寫字母均被轉(zhuǎn)義
// ... 但 [\]^_` 以及分隔符、換行符、回車符等也一并被轉(zhuǎn)義了。
?>
<?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");
?>