0

私はASCII文字の文字列を8進数に変換しようとしていますが、私の人生ではそれを理解できません。誰でも知っていますか?

4

1 に答える 1

4

私はちょうど使用ordしたいと思いますbase_convertordASCII 値を 10 進数で取得し、それを 8 進数にするために使用します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 に答える