我正在尝试将一串 ASCII 字符转换为等效的八进制字符,但我终其一生都无法弄清楚。有谁知道吗?
1404 次
1 回答
4
我只会使用ordand 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 回答