Как сгенерировать случайное число (или строку) в PHP

При разработке приложения на языке программирования PHP довольно часто приходится создавать случайные числа. Например, чтобы делать выборку случайной записи из базы данных, чтобы создавать уникальный идентификатор пользователя (или сеанса), чтобы выводить случайную картинку на сайте, чтобы присваивать случайные названия файлам и т.д. Применений этому есть довольно много.

Серверу (компьютеру) достаточно сложно сгенерировать действительно случайное значение. Чтобы упростить ему задачу – вам нужно будет предоставить компьютеру диапазон конкретных значений для выбора. Как вы понимаете, это немного противоречит самому факту случайности. Но, пока ничего лучшего не придумано.

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

 

 

Генерация случайных чисел в PHP

Для генерации случайных чисел в PHP есть 2 функции (или генератора). Первый генератор случайных чисел – это классическая функция rand(). Она принимает два параметра: $min (наименьшее значение, которое может быть возвращено) и $max (наибольшее значение, которое может быть возвращено).

Синтаксис функции:

<?php
echo rand(25, 1150);
// результатом будет случайное число в диапазоне от 25 до 1150
?>

 

 

Второй генератор случайных чисел в PHP – это улучшенная версия первой функции. Это функция mt_rand(). Сокращение MT происходит от Mersenne Twister (вихря Мерсенна), по имени французского математика Марена Мерсенна. Эта функция менее предсказуема, чем классическая функция, а также она работает немного быстрее (почти в 4 раза) за генератор rand().

Синтаксис функции:

<?php
mt_rand($min, $max);
// где $min – минимальное значение случайного числа
// а $max – максимальное значение случайного числа
echo mt_rand(25, 1150);
// результатом будет случайное число в диапазоне от 25 до 1150
?>

 

 

Криптографически безопасные случайные целые числа

Начиная с PHP версии 7.0 можно генерировать криптографически безопасные псевдослучайные целые числа (т.е., числа, для которых случайность результата очень критична). Это делается с помощью функции random_int(), которая также принимает параметры $min и $max.

Синтаксис функции:

<?php
echo random_int(25, 1150);
// результатом будет псевдослучайное целое число в диапазоне от 25 до 1150
?>

 

 

Как сгенерировать случайную буквенно-цифровую строку в PHP

Для решения этой задачи в PHP существует довольно много способов. Мы же рассмотрим сегодня только вариант создания случайных строк способом перетасовывания символов в строке. Мы возьмем фиксированный набор символов, и сгенерируем случайные буквенно-цифровые строки с помощью функции str_shuffle($string). Учтите, что случайная строка, сгенерированная таким образом, не будет являться криптографически безопасной. Тем не менее, строка в результате будет довольно непредсказуемой и ее можно использовать, например, для генерации случайных URL-адресов или паролей. Ниже один из примеров использования:

<?php
$razreshenniye_simvoli = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
echo substr(str_shuffle($razreshenniye_simvoli), 0, 15);
// Возможный вариант результата: WpXq7uTs4ViJaxQ
?>

 

Мы просто перетасовали строку из допустимых символов, а затем взяли первые 15 символов. Этот способ генерации случайных буквенно-цифровых строк очень прост, но иногда такой способ не будет наиболее оптимальным.

 

View Comments

Recent Posts

Как выбрать детские бутсы для футбольной секции и не ошибиться с типом подошвы

Футбольная секция быстро показывает, насколько обувь подходит ребенку. Если пара скользит, давит или плохо цепляется…

16 часов ago

Флагманский смартфон: почему стоит купить Samsung Galaxy S26 Ultra

Компания Samsung — один из лидеров на рынке электроники. Ее смартфоны выделяются надежностью, качественными дисплеями,…

17 часов ago

Идеальное рабочее место: собираем надежный сетап для стабильной работы и гейминга

Рабочее пространство давно перестало быть просто столом с ноутбуком. Сегодня это полноценная экосистема, где каждая…

1 неделя ago

Серверы VPS для построения независимых онлайн-систем

Когда проект зависит от чужих ограничений, возрастают риски простоев, потери доступа к данным и сложности…

2 недели ago

Домен и хостинг: в чем разница и почему они работают только вместе

У тех, кто планирует создание сайта впервые, почти всегда возникает вопрос: что такое домен и…

2 недели ago

Больше чем просто Wi-Fi: Как выбрать роутер для IT-специалиста

Для простого пользователя критерием хорошего Wi-Fi является быстрая загрузка страниц и отсутствие буферизации при просмотре…

2 недели ago