Perl - PHP: генерация случайных строк - PullRequest
0 голосов
/ 14 апреля 2011

Я не знаю языка Perl, но я пытаюсь настроить приложение, написанное на языке Perl. Я хочу знать логику или значение следующего кода на Perl. Я знаю, что этот код предназначен для генерации случайной строки, но я хочу узнать ее подробности, т.е. я хочу знать, как я могу сгенерировать эту же случайную строку в PHP? Пожалуйста, кто-нибудь даст мне код PHP для этого кода Perl !!

   sub generate_rand_string {

    #warn "generate_rand_string";

    my $chars = shift
      || 'aAeEiIoOuUyYabcdefghijkmnopqrstuvwxyzABCDEFGHJKMNPQRSTUVWXYZ23456789';
    my $num = shift || 1024;

    require Digest::MD5;

    my @chars = split '', $chars;
    my $ran;
    for ( 1 .. $num ) {
        $ran .= $chars[ rand @chars ];
    }
    return Digest::MD5::md5_hex($ran);
}

Пожалуйста, кто-нибудь, помогите мне !!!!

Ответы [ 2 ]

1 голос
/ 14 апреля 2011

Шаги для эмуляции:

  1. принимает строку и по умолчанию aAeEiIoOuUyYabcdefghijkmnopqrstuvwxyzABCDEFGHJKMNPQRSTUVWXYZ23456789, если нет строка предоставляется
  2. принять число и по умолчанию 1024, если номер не указан
  3. разбить строку на символы
  4. создать строку со случайными символами, выбранными из вышеуказанного набора символов
  5. возвращает шестнадцатеричное представление MD5-хеша строки
0 голосов
/ 14 апреля 2011

В PHP это будет выглядеть так:

function generate_rand_string($chars = null, $length = 1024) {
    if($chars == null) {
        $chars = 'aAeEiIoOuUyYabcdefghijkmnopqrstuvwxyzABCDEFGHJKMNPQRSTUVWXYZ23456789';
    }

    $rand = '';
    for($i = 0; $i < $length; $i++) {
        $rand .= $chars[ rand(0, strlen($chars) - 1) ];
    }

    return md5($rand);
}
...