【问题标题】:addcslashes escaping capital lettersaddcslashes 转义大写字母
【发布时间】:2016-08-01 10:24:15
【问题描述】:

以下是我的代码示例:

<?php
   echo addcslashes('ABC','\0..\37');
?>

我的输出是

\A\B\C

根据文档,\0...\37 将转义 0 到 31 之间的 ASCII 值。但我发现 ASCII 值超过 31 的大写字母在这里被转义。当我尝试使用小写字母时,它工作正常。

我应该添加什么来使 addcslashes 函数适用于给定的 ASCII 字符?

【问题讨论】:

标签: php string ascii


【解决方案1】:

使用双引号使\-escapes 能够正常工作:

echo addcslashes('ABC', "\0..\37");

带单引号的'\0..\37' 被解释为\ + 范围0..\ + 字符37

例如,所有大写字母都在0..\ 范围内,这就是它们被转义的原因。

【讨论】:

    【解决方案2】:

    $charlist 参数需要使用双引号:

    echo addcslashes('ABC', "\0..\37");
    

    带有single quoted string 的反斜杠不代表特殊的字符序列。

    另请参阅double quoted strings 的手册。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-04
    • 2015-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-04
    相关资源
    最近更新 更多