addcslashes() - 以 C 语言风格使用反斜线转义字符串中的字符 - php 字符串函数
addcslashes()
(PHP 4, PHP 5, PHP 7)
以 C 语言风格使用反斜线转义字符串中的字符
说明
addcslashes(string $str,string $charlist): string返回字符串,该字符串在属于参数$charlist列表中的字符前都加上了反斜线。
参数
$str要转义的字符。
$charlist如果$charlist中包含有\n,\r等字符,将以 C 语言风格转换,而其它非字母数字且 ASCII 码低于 32 以及高于 126 的字符均转换成使用八进制表示。
当定义$charlist参数中的字符序列时,需要确实知道介于自己设置的开始及结束范围之内的都是些什么字符。
另外,如果设置范围中的结束字符 ASCII 码高于开始字符,则不会创建范围,只是将开始字符、结束字符以及其间的字符逐个转义。可使用ord()
函数获取字符的 ASCII 码值。
当选择对字符 0,a,b,f,n,r,t 和 v 进行转义时需要小心,它们将被转换成\0
,,
,
\f
,\n
,\r
,\t
,\v
。在 PHP 中,只有\0
(NULL),\r
(回车符),\n
(换行符)和\t
(制表符)是预定义的转义序列,而在 C 语言中,上述的所有转换后的字符都是预定义的转义序列。
返回值
返回转义后的字符。
更新日志
版本 | 说明 |
---|---|
5.2.5 | 增加了转义序列\v and\f |
范例
$charlist参数,如“\0..\37”,将转义所有 ASCII 码介于 0 和 31 之间的字符。
addcslashes()例子
下表包含所有 128 个 ASCII 码对应的十进制(dec)、八进制(oct),十六进制(hex)和字符(ch)的值。
dec | oct | hex | ch | dec | oct | hex | ch | dec | oct | hex | ch | dec | oct | hex | ch | |||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | 00 | NUL(空) | 32 | 40 | 20 | (空格) | 64 | 100 | 40 | @ | 96 | 140 | 60 | ` | |||
1 | 1 | 01 | SOH(标题开始) | 33 | 41 | 21 | ! | 65 | 101 | 41 | A | 97 | 141 | 61 | a | |||
2 | 2 | 02 | STX(正文开始) | 34 | 42 | 22 | " | 66 | 102 | 42 | B | 98 | 142 | 62 | b | |||
3 | 3 | 03 | ETX(正文结束) | 35 | 43 | 23 | # | 67 | 103 | 43 | C | 99 | 143 | 63 | c | |||
4 | 4 | 04 | EOT(传送结束) | 36 | 44 | 24 | $ | 68 | 104 | 44 | D | 100 | 144 | 64 | d | |||
5 | 5 | 05 | ENQ(询问) | 37 | 45 | 25 | % | 69 | 105 | 45 | E | 101 | 145 | 65 | e | |||
6 | 6 | 06 | ACK(确认) | 38 | 46 | 26 | & | 70 | 106 | 46 | F | 102 | 146 | 66 | f | |||
7 | 7 | 07 | BEL(响铃) | 39 | 47 | 27 | ' | 71 | 107 | 47 | G | 103 | 147 | 67 | g | |||
8 | 10 | 08 | BS(退格) | 40 | 50 | 28 | ( | 72 | 110 | 48 | H | 104 | 150 | 68 | h | |||
9 | 11 | 09 | HT(横向制表) | 41 | 51 | 29 | ) | 73 | 111 | 49 | I | 105 | 151 | 69 | i | |||
10 | 12 | 0a | LF(换行) | 42 | 52 | 2a | * | 74 | 112 | 4a | J | 106 | 152 | 6a | j | |||
11 | 13 | 0b | VT(纵向制表) | 43 | 53 | 2b | + | 75 | 113 | 4b | K | 107 | 153 | 6b | k | |||
12 | 14 | 0c | FF(换页) | 44 | 54 | 2c | , | 76 | 114 | 4c | L | 108 | 154 | 6c | l | |||
13 | 15 | 0d | CR(回车) | 45 | 55 | 2d | - | 77 | 115 | 4d | M | 109 | 155 | 6d | m | |||
14 | 16 | 0e | SO(移出) | 46 | 56 | 2e | . | 78 | 116 | 4e | N | 110 | 156 | 6e | n | |||
15 | 17 | 0f | SI(移入) | 47 | 57 | 2f | / | 79 | 117 | 4f | O | 111 | 157 | 6f | o | |||
16 | 20 | 10 | DLE(退出数据链) | 48 | 60 | 30 | 0 | 80 | 120 | 50 | P | 112 | 160 | 70 | p | |||
17 | 21 | 11 | DC1(设备控制1) | 49 | 61 | 31 | 1 | 81 | 121 | 51 | Q | 113 | 161 | 71 | q | |||
18 | 22 | 12 | DC2(设备控制2) | 50 | 62 | 32 | 2 | 82 | 122 | 52 | R | 114 | 162 | 72 | r | |||
19 | 23 | 13 | DC3(设备控制3) | 51 | 63 | 33 | 3 | 83 | 123 | 53 | S | 115 | 163 | 73 | s | |||
20 | 24 | 14 | DC4(设备控制4) | 52 | 64 | 34 | 4 | 84 | 124 | 54 | T | 116 | 164 | 74 | t | |||
21 | 25 | 15 | NAK(反确认) | 53 | 65 | 35 | 5 | 85 | 125 | 55 | U | 117 | 165 | 75 | u | |||
22 | 26 | 16 | SYN(同步空闲) | 54 | 66 | 36 | 6 | 86 | 126 | 56 | V | 118 | 166 | 76 | v | |||
23 | 27 | 17 | ETB(传输块结束) | 55 | 67 | 37 | 7 | 87 | 127 | 57 | W | 119 | 167 | 77 | w | |||
24 | 30 | 18 | CAN(取消) | 56 | 70 | 38 | 8 | 88 | 130 | 58 | X | 120 | 170 | 78 | x | |||
25 | 31 | 19 | EM(媒介结束) | 57 | 71 | 39 | 9 | 89 | 131 | 59 | Y | 121 | 171 | 79 | y | |||
26 | 32 | 1a | SUB(替换) | 58 | 72 | 3a | : | 90 | 132 | 5a | Z | 122 | 172 | 7a | z | |||
27 | 33 | 1b | ESC(退出) | 59 | 73 | 3b | ; | 91 | 133 | 5b | [ | 123 | 173 | 7b | { | |||
28 | 34 | 1c | FS(文件分隔符) | 60 | 74 | 3c | 94 | 136 | 5e | ^ | 126 | 176 | 7e | ~ | ||||
31 | 37 | 1f | US(单元分隔符) | 63 | 77 | 3f | ? | 95 | 137 | 5f | _ | 127 | 177 | 7f | DEL(删除) |
参见
stripcslashes()
反引用一个使用 addcslashes 转义的字符串stripslashes()
反引用一个引用字符串addslashes()
使用反斜线引用字符串htmlspecialchars()
将特殊字符转换为 HTML 实体quotemeta()
转义元字符集
If you are using addcslashes() to encode text which is to later be decoded back to it's original form, you MUST specify the backslash (\) character in charlist! document.write("
鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!