Скрипт генерации

Тема в разделе "Как сделать...", создана пользователем zero20, 31 окт 2013.

  1. zero20

    zero20

    Регистр.:
    23 апр 2006
    Сообщения:
    232
    Симпатии:
    49
    Может кто поможет, нужен скрипт такого плана.
    Есть два массива а и б содержащих заданные символы (цифры и буквы), нужно из этих массивов по заданной маске сделать генерацию.

    Например задаем маску аббабаа и все полученные варианты вывести.
     
  2. Stas-P

    Stas-P

    Регистр.:
    7 сен 2013
    Сообщения:
    165
    Симпатии:
    125
    Что-то несовмес понятна задача, объясни по подробнее суть...
    сейчас это выглядит как обычная рандомная генерация
     
  3. zero20

    zero20

    Регистр.:
    23 апр 2006
    Сообщения:
    232
    Симпатии:
    49
    в принципе да, она и нужна случайная генерация символов из массивов. Я просто в програминге не разбираюсь, поэтом и вопрос такой.
     
  4. Stas-P

    Stas-P

    Регистр.:
    7 сен 2013
    Сообщения:
    165
    Симпатии:
    125
    Смотри, если тебе нужна просто случайная генерация символов, то не обязательно это делать из массивов, есть более простое решение.
    К примеру, есть функции
    mt_rand - генерирует случайное значение.
    uniqid - генерирует уникальный id.

    Ну а дальше, смотря какая задача, если тебе нужно сгенерировать что-то такое что трудно угадать :)
    тогда можно использовать такой код:
    PHP:
    $char md5(uniqid(mt_rand(), true));
     
  5. zero20

    zero20

    Регистр.:
    23 апр 2006
    Сообщения:
    232
    Симпатии:
    49
    Генерация нужна случайна, но из заданных значений. Например в массиве 1 задаются значения (допустим цифры от 1 до 7), а в массиве 2 - буквы a,b,c,d
    и по заданной маске допустим 121122 (это массивы 1 и 2) генерируются все возможные значения в рамках значений из массивов.
    На выходе: 2ab31cd; 3cb43ab; и т.д.
     
    Последнее редактирование: 31 окт 2013
  6. Stas-P

    Stas-P

    Регистр.:
    7 сен 2013
    Сообщения:
    165
    Симпатии:
    125
    PHP:
    $char md5(uniqid(mt_rand(), true));
    $uuid substr($char08) . '-' substr($char84) . '-' substr($char124) . '-' substr($char164) . '-' substr($char208);
    На выходе: 7f292e24-cd03-8b3c-d247-70d139f8

    Если тебе нужно, чтобы было как в твоем примере, то:
    PHP:
    $char md5(uniqid(mt_rand(), true));
    $uuid substr($char07);
     
    zero20 нравится это.
  7. sib-york

    sib-york Писатель

    Заблокирован
    Регистр.:
    17 май 2013
    Сообщения:
    3
    Симпатии:
    0
    А не подскажите как сделать, чтобы была генерация еще и из символов по мимо цифр и букв и с ограничением по длине, например в 30 символов на выходе.
     
  8. sib-york

    sib-york Писатель

    Заблокирован
    Регистр.:
    17 май 2013
    Сообщения:
    3
    Симпатии:
    0
    Немного не так сформулировал. Вот код:

    $len = 30;
    $symbol_array = "QqWwEeRrTtYyUuIiOoPpAaSsDdFfGgHhJjKkLlZzXxCcVvBbNnMm0123456789";
    $max = strlen($symbol_array) - 1;
    $pass = "";
    for($i = 0;; $i++) {
    $pass .= $symbol_array[rand(0, $max)];
    if($i == $len-1) break;
    }
    Тут идет массив для генерации $symbol_array без символов, надо что-то сюда добавить, чтобы были и символы, а также на выходе получается просто вот так: 1Q52og4YJ59ig5T87UOh7hjOs, а хотелось бы чтобы было вот так: 1Q52o-g4YJ5-9ig5T-87UOh-7hjOs

    Подскажите как это сделать?
    Спасибо.
     
  9. Stas-P

    Stas-P

    Регистр.:
    7 сен 2013
    Сообщения:
    165
    Симпатии:
    125
    Смотри мой ответ выше, там приведен такой код.
     
  10. sib-york

    sib-york Писатель

    Заблокирован
    Регистр.:
    17 май 2013
    Сообщения:
    3
    Симпатии:
    0
    А может вы напишите мой код вместе с вашим, чтобы правильно было, а то у меня что-то не получается