0

我正在尝试将一串 ASCII 字符转换为等效的八进制字符,但我终其一生都无法弄清楚。有谁知道吗?

4

1 回答 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 回答