【问题标题】:PHP convert an octal characters to stringPHP将八进制字符转换为字符串
【发布时间】:2014-12-14 11:46:28
【问题描述】:

标题几乎是不言自明的......
如何回显八进制字符串?
我试过了:

<?php
echo '\047\131\145\141\162\040\072\040\047'.'<br>';
echo decoct('\047\131\145\141\162\040\072\040\047').'<br>';
echo decoct('047').decoct('131').decoct('145').decoct('141').decoct('162').decoct('040').decoct('072'),decoct('040').decoct('047').'<br>';
?>

但没有什么对我有用....
我很确定这里需要进行一些小调整,但是......哪一个?
谢谢!

【问题讨论】:

    标签: php string echo octal chr


    【解决方案1】:

    转义序列只在双引号字符串内处理,而不是单引号字符串。

    echo "\047\131\145\141\162\040\072\040\047".'<br>';
    

    【讨论】:

      【解决方案2】:

      这是一个反斜杠转义字符串,所以使用stripcslashes() 取消转义,如下所示:

      $escaped = '\047\131\145\141\162\040\072\040\047'.'<br>';
      $unescaped = stripcslashes($escaped);
      echo $unescaped;
      

      结果:

      'Year : '<br>
      

      【讨论】:

        【解决方案3】:

        这可能会有所帮助

        function convertOctalToCharacter($octal) {
            return chr(octdec($octal[1]));
        }
        

        对于使用八进制字符串的大规模标记, 这种正则表达式处理也可能变得很方便:

        $string = preg_replace_callback('/\\\\([0-7]{1,3})/', 'convertOctalToCharacter', $string);
        

        致谢转到http://www.matthewratzloff.com/ 博客文章

        【讨论】:

          猜你喜欢
          • 2021-09-07
          • 1970-01-01
          • 1970-01-01
          • 2011-01-30
          • 2015-11-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多