将PHP中的八进制字符转换为字符串

5

标题已经很清楚了...
如何输出一个八进制字符串?
我尝试过:

<?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>';
?>

但是对我来说什么都不起作用......
我相当确定这里需要一些小调整,但是......哪一个呢?
谢谢!

3个回答

6

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

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

5

这是一个使用反斜杠进行转义的字符串,需要使用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/的博客


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接