(PHP 4, PHP 5)
addcslashes — 以 C 语言风格使用反斜线转义字符串中的字符
$str
, string $charlist
)
返回字符串,该字符串在属于参数 charlist
列表中的字符前都加上了反斜线。如果 charlist
中包含有 \n,\r
等字符,将以 C 语言风格转换,而其它非字母数字且 ASCII 码低于 32 以及高于 126
的字符均转换成使用八进制表示。
当选择对字符 0,a,b,f,n,r,t 和 v 进行转义时需要小心,它们将被转换成 \0,\a,\b,\f,\n,\r,\t 和 \v。在 PHP 中,只有 \0(NULL),\r(回车符),\n(换行符)和 \t(制表符)是预定义的转义序列, 而在 C 语言中,上述的所有转换后的字符都是预定义的转义序列。
charlist
参数,如“\0..\37”,将转义所有
ASCII 码介于 0 和 31 之间的字符。
Example #1 addcslashes() 例子
<?php
$escaped = addcslashes($not_escaped, "\0..\37!@\177..\377");
?>
当定义 charlist 参数中的字符序列时,需要确实知道介于自己设置的开始及结束范围之内的都是些什么字符。
<?php
echo addcslashes('foo[ ]', 'A..z');
// 输出:\f\o\o\[ \]
// 所有大小写字母均被转义
// ... 但 [\]^_` 以及分隔符、换行符、回车符等也一并被转义了。
?>
<?php
echo addcslashes("zoo['.']", 'z..A');
// 输出:\zoo['\.']
?>
参见 stripcslashes(), stripslashes(), addslashes(), htmlspecialchars() 和 quotemeta()。