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

时间:2014-12-14 11:46:29

标签: php string echo octal chr

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

<?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 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:3)

这可能会有所帮助

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

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

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

积分转至http://www.matthewratzloff.com/博文

答案 2 :(得分:3)

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

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

结果:

'Year : '<br>