以下是我的代码示例:
<?php
echo addcslashes('ABC','\0..\37');
?>
我的输出是
\A\B\C
根据文档,\0...\37
将转义0到31之间的ASCII值。但是我发现ASCII值大于31的大写字母在这里被转义。当我尝试使用小写字母时,它正常工作。
我应该添加什么来使addcslashes功能适用于给定的ASCII字符?
答案 0 :(得分:2)
使用双引号,以便\
- escapes正常工作:
echo addcslashes('ABC', "\0..\37");
单引号'\0..\37'
被解释为\
+范围0..\
+字符37
。
例如,所有大写字母都在0..\
范围内,这就是他们被转义的原因。
答案 1 :(得分:1)
您需要为$charlist
参数使用双引号:
echo addcslashes('ABC', "\0..\37");
使用Resample API
反斜杠不代表特殊的字符序列。
另请参阅single quoted string手册。