Конвертировать функцию Perl в PHP - PullRequest
0 голосов
/ 10 июля 2010

Я хочу преобразовать приведенную ниже функцию 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($_);
}

Заранее спасибо.

1 Ответ

2 голосов
/ 10 июля 2010

Это доморощенная реализация кодировки Base32 из RFC 3548 .Реализация PHP, распространяемая по условиям GPL, доступна по адресу 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
...