Время от времени на php нужно создавать переменные, которые бы случайным образом получали значения. Реализацией данной задачи требуют такие скрипты, как случайное появление акций или отображение на сайте разных картинок.
В то же время для создания комбинаций, например паролей лучше использовать функцию uniqid(), которая создат разные значения (с числами и символами). Но начнем с генератора чисел.
rand() и mt_rand() - обе эти функции имеют одинаковый синтаксис и позволяют получать на выходе число от минимального значения к максимальному. На сегодня лучше использовать mt_rand(), так как эта функция новее и ее максимальное число больше, чем в rand(). Кстати, если мы заговорили о числах, то в mt_rand() это 19937, а в rand - 32768.
Синтаксис на примере mt_rand(): mt_rand(min число, max число).
Примеры:
echo mt_rand(); //от 0 до max (219937) лучше и быстрее
echo rand(); //от 0 до max (32768)
echo mt_rand(20, 190); //от 20 до 190
Генератор значений uniqid()
Эта функция позволяет создавать комбинации из чисел и цифр с некоторыми параметрами.
Например, если вывести: echo uniqid(); -то на выходе мы получим примерно следующее: 530c95e7d1e9a.
Но если мы хотим, чтобы комбинация начиналась всегда с какого-то префикса, то пишите его в функции.
Пример: echo uniqid('foo_');//с префиксом foo_530c95e7d1e89
Также возможны и другие варианты вывода:
echo uniqid('',true); //с цифрами, без префикса 530c963acfc7d0.09567611
echo uniqid('rt-',true);//с цифрами, с префиксом rt-530c967e77d287.61190909
Теперь когда вы знаете, как создаются случайные комбинации в php, вы можете их комбинировать, для большей уникальности. Например: echo mt_rand().uniqid();
Но есть еще один небольшой секрет создания всегда уникальных чисел. Он заключается в использовании функции time(). Она считает сколько прошло секунд с 1970 года. Следовательно, при ежесекундном запросе комбинация в цифрах всегда будет разной. Пример: echo time(); Я часто ее использую при сохранении файлов, чтобы имена не совпадали.
Добавить комментарий