我正在尝试将一串 ASCII 字符转换为等效的八进制字符,但我终其一生都无法弄清楚。有谁知道吗?
问问题
1404 次
1 回答
4
我只会使用ord
and base_convert
。用于ord
获取十进制的 ascii 值,然后base_convert
使其变为八进制。
$oct = base_convert(ord($char), 10, 8);
这是您以函数形式寻求的内容:
function string_to_octal($str)
{
$chars = str_split($str);
$rtn = "";
foreach ($chars as $c) { $rtn .= str_pad(base_convert(ord($c), 10, 8), 3, 0, STR_PAD_LEFT); }
return $rtn;
}
注意:str_pad
包括在内,因为结果并不总是一个 3 字节的块。
上述代码的示例。
编辑:正如@brbcoding 指出的那样,您可以使用decoct($c)
.base_convert($c, 10, 8)
于 2013-03-28T19:16:57.890 回答