Битрикс randString – как сгенерировать рандомную строку или пароль

В битриксе есть полезная функция по генерированию случайной строки, которая отлично подходит для паролей новых пользователей. Но у нее есть и другие варианты применения. Читайте ниже.

Как создать пароль для новых пользователей в Битриксе

Какие сейчас требованию к паролям, в современном мире спам-ботов и прочей фигни? 🙂
1. содержать буквы в разных разных регистрах,
2. содержать цифры,
3. содержать спецсимволы.

Чтобы не писать велосипед на PHP, воспользуемся стандартной функцией randString. Минимальный набор параметров, это длина строки:

echo randString(8);

В чем минус? Доступны лишь следующие знаки:
abcdefghijklnmopqrstuvwxyzABCDEFGHIJKLNMOPQRSTUVWXYZ01234567­89

Это были значения по умолчанию. Но, второй параметр данной функции может содержать в себе массив. Документация говорит: может быть массивом классов символов и тогда в результирующую строчку войдет как минимум один символ из каждого класса.
Пишем:

echo randString(12, array(
  "abcdefghijklnmopqrstuvwxyz",
  "ABCDEFGHIJKLNMOPQRSTUVWX­YZ",
  "0123456789",
  "!@#\$%^&*()",
));

Соответственно, если вам нужно несколько цифр, создаете еще один элемент массива. Очень удобно, пароль генерируется, и его можно отправить в почтовом сообщение при помощи Event Битрикса.

Как в битриксе задавать уникальные ID при помощи randString

Давайте рассмотрим ситуацию, когда на странице используется HTML атрибут id=””, но его значение необходимо генерировать случайно. Пишем:

$randStr = randString(7);
...
id="#uniq-< ?= $uniqueID ? >-callback"
...

Т.к. цифры могут быть в самом начале, а в HTML это недопустимо, мы будем генерировать имя в виде #uniq-uniqueID-callback.

Вот и всё, вы научились пользоваться функцией рандомной строки, в которой все символы будут случайны 🙂

Ссылка на документацию:
https://dev.1c-bitrix.ru/api_help/main/functions/string/randstring.php

автор: Dmitriy

З 2011 року займаюся веб-розробкою. Зараз я – PHP Full Stack Developer.
Обговорити ваш проект, а також дізнатися більше про мене ви можете на цьому сайті:
dev.forwww.com

Email: dmitriyribka@gmail.com

Залишити відповідь