addcslashes($str, $charlist)
来自http://php.net/manual/en/function.addcslashes.php
“如果charlist包含字符\ n,\ r \ n等,则转换为 类似C的样式,而其他非字母数字字符使用ASCII码 低于32且高于126转换为八进制表示。“
1)因此,对于第一部分,这将是\ 0,\ a,\ b,\ f,\ n,\ r,\ t,\ t,\ v。 C样式转换的含义是什么(我可以在网上检查的任何网址),以及为什么要进行转换?
2)为什么“ASCII码低于32且高于126的其他非字母数字字符”被转换为八进制表示?
答案 0 :(得分:1)
如果你这样做:
echo addcslashes("abc\nfoo\1bar", "\n\1")
输出是:
abc\nfoo\001bar
目的是以C和PHP程序员可能编写文字的格式返回字符串。对于换行,我们通常会写\n
而非\012
,而不是\e
代表Escape,\033
而不是\r
来回车等,以便返回了什么。但是大多数其他非印刷字符都没有短暂的转义序列,因此它们会以八进制转义返回。