0

以下のperl関数をPHP関数に変換したいのですが、誰かが少し助けてくれるなら、私はそれを理解したいと思います:

sub encode32
{
    $_=shift;
    my($l,$e);
    $_=unpack('B*',$_);
    s/(.....)/000$1/g;
    $l=length;
    if($l & 7)
    {
        $e=substr($_,$l & ~7);
        $_=substr($_,0,$l & ~7);
        $_.="000$e" . '0' x (5-length $e);
    }
    $_=pack('B*', $_);
    tr|\0-\37|A-Z2-7|;
    lc($_);
}

前もって感謝します。

4

1 に答える 1

2

これは、 RFC3548のBase32エンコーディングの自社開発の実装です。GPLの条件の下で配布されたPHP実装は、Fremnetで入手できます。

使用例:

<?
include('class.base32.php5');

function encode32($str) {
  $b = new Base32(Base32::csRFC3548);
  return strtolower($b->fromString($str));
}

print encode32("foo bar baz quux") . "\n";
?>

出力:

mzxw6idcmfzcaytbpiqhc5lvpa
于 2010-07-10T16:25:25.173 に答える