私はASCII文字の文字列を8進数に変換しようとしていますが、私の人生ではそれを理解できません。誰でも知っていますか?
1404 次
1 に答える
4
私はちょうど使用ord
したいと思いますbase_convert
。ord
ASCII 値を 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 に答える