PHP addcslashes 函数

一、函数功能:
  以 C 语言风格为字符串中的“指定字符”添加反斜杠。它是stripcslashes()函数的反向操作函数,同时它也是stripcslashes()函数的升级版。

二、函数语法:
string addcslashes($str, $charlist)

三、函数参数:
参数描述
$str要添加反斜杠的原始字符串
$charlist指定要添加反斜杠的字符合集
1、指定多个字符:“abc”,“123”,“、“abc123\t\n”;
2、使用斜杠开头的八进制:“\020\018”,“\096”(对于不可见字符非常有用);
3、指定一个范围:“\141..\177”,“a..z”,“0..9”。

四、返回值:
返回添加反斜杠完成的字符串。

五、用法举例:
1、为换行符和制表符添加反斜杠:
  换行符和制表符经过下面addcslashes函数处理后,不再有换行,而是用加了斜杠的转义符形式表示(\011为制表符\b的ASCII八进制编码):
<?php
# 爱E族:aiezu.com
$str1 = "ab
cd	ef";
echo addcslashes($str1, "\n\011");
输出:
ab\ncd\tef
 
2、通过ASCII编码表范围,指定要添加反斜杠的字符:
  此例中除数字123外,其他字符都被添加反斜杠,因为其他字符都在ASCII编码表的“A..z”范围内:
<?php
# 爱E族:aiezu.com
echo addcslashes("ABC123[_]abc", "A..z");
echo addcslashes("ABC123[_]abc", "\101..\172");
输出:
\A\B\C123\[\_\]\a\b\c
\A\B\C123\[\_\]\a\b\c
 
3、无效的ASCII编码表范围:
  由于只有递增才是有效的ASCII编码表范围,所以下例中的"z..A"不是有效的ASCII编码表范围,抛出一条警告信息,且只有"zA."三个字符被添加反斜杠。
<?php
# 爱E族:aiezu.com
echo addcslashes("ABCz.123[_]abc", "z..A");
输出:
PHP Warning:  addcslashes(): Invalid '..'-range, '..'-range needs to be incrementing in /tmp/a.php on line 2
\ABC\z\.123[_]abc

0 个评论

要回复文章请先登录注册